1

我们正在对 kafka 与 jet 流进行 poc,我注意到 kafka 需要序列化器和反序列化器,但在 jet 流中没有看到它,所以只是想知道 jet 如何在集群之间和客户端之间发送数据。

另外,使用其中一种的优缺点是什么。

请注意,我们只比较流式处理部分,而不是 kafka 完全容错的部分,但 jet 并不像 jet 中的全部内存一样。

我们需要在流媒体部分找到更多的利弊。

4

1 回答 1

0

Jet 本身支持默认的 Java 序列化,因此如果您不配置任何内容并且您的数据项是Serializable,它将起作用。然而,Java 序列化有很大的开销,如果你的管道有很多流量,这很容易成为瓶颈。在这种情况下,您可以为您的对象实现 Hazelcast 序列化,如Jet 参考手册中所述,例如:

SerializerConfig serializerConfig = new SerializerConfig()
        .setImplementation(new MyItemSerializer())
        .setTypeClass(MyItem.class);
JetConfig config = new JetConfig();
    config.getHazelcastConfig().getSerializationConfig()
          .addSerializerConfig(serializerConfig);
JetInstance jet = Jet.newJetInstance(config);

Jet 相对于 Kafka Streams 的主要优势在于性能,因为它是在内存中的。

就像 Hazelcast IMDG 一样,Hazelcast Jet 可以容忍配置数量的集群成员的故障。它支持恰好一次至少一次处理保证。Jet Enterprise Edition 支持将处理状态存储到持久存储中。

于 2019-02-04T13:07:26.077 回答