Hazelcast Jet是否支持将滚动编号作为IMap键,并将卡夫卡作为来源?

Hazelcast Jet是否支持将滚动编号作为IMap键,并将卡夫卡作为来源?,hazelcast,hazelcast-imap,hazelcast-jet,Hazelcast,Hazelcast Imap,Hazelcast Jet,我不久前使用过Hazelcast,我第一次使用Hazelcast Jet,似乎对处理实时流媒体很感兴趣 在这里我遇到了一个情况,我使用以下方法将Kafka主题拉到IMap: private static Pipeline buildPipelineForClientDataa(){ Pipeline p=Pipeline.create(); p、 提款(卡夫卡来源:kafka)( 道具(“bootstrap.servers”、bootstrap\u服务器、, “key.deserializer”

我不久前使用过Hazelcast,我第一次使用Hazelcast Jet,似乎对处理实时流媒体很感兴趣

在这里我遇到了一个情况,我使用以下方法将
Kafka主题
拉到
IMap

private static Pipeline buildPipelineForClientDataa(){
Pipeline p=Pipeline.create();
p、 提款(卡夫卡来源:kafka)(
道具(“bootstrap.servers”、bootstrap\u服务器、,
“key.deserializer”,StringDeserializer.class.getCanonicalName(),
“value.deserializer”,StringDeserializer.class.getCanonicalName(),
“自动偏移重置”,自动偏移重置),
卡夫卡(主题)
.无时间戳()
.drainTo(Sinks.map(SINK_CLINET_数据));
返回p;
}

嗯,我没有这个话题的答案。我是否可以选择将滚动编号指定为键?如果是这样,请帮助我掌握这项技术。谢谢。

对于Jet来说,使用递增数字并不合适,因为它是一个分布式系统。它使用一个分区的流,每个流分区应该是独立的。您需要通过非并行处理器路由所有项目

您可以使用
UUID
或Hazelcast的
FlakeIdGenerator
作为键,但如果作业重新启动并从快照偏移量重新处理卡夫卡主题,则相同的项目将分配不同的键,并且将在目标映射中出现两次

如果希望地图中的每个项目都有,可以使用Kafka的topic+partitionId+offset组合作为键:

p.drawFrom(KafkaSources.kafka(
道具(…),
记录->Util.entry(
Tuple3.Tuple3(record.topic()、record.partition()、record.offset()),
record.value()),
卡夫卡(主题)

如果只有一个主题,则可以省略该主题。

使用递增数字对Jet来说并不合适,因为它是一个分布式系统。它使用一个分区的流,每个流分区应该是独立的。您需要通过非并行处理器路由所有项目

您可以使用
UUID
或Hazelcast的
FlakeIdGenerator
作为键,但如果作业重新启动并从快照偏移量重新处理卡夫卡主题,则相同的项目将分配不同的键,并且将在目标映射中出现两次

如果希望地图中的每个项目都有,可以使用Kafka的topic+partitionId+offset组合作为键:

p.drawFrom(KafkaSources.kafka(
道具(…),
记录->Util.entry(
Tuple3.Tuple3(record.topic()、record.partition()、record.offset()),
record.value()),
卡夫卡(主题)

如果只有一个主题,则可以省略该主题。

这是您在代码中设置的org.apache.kafka.common.utils.utils吗?如果是,则不支持方法条目。它是
com.hazelcast.jet.Util.entry()
,而不是
Utils
,我修复了响应<代码>映射。
Sinks.Map()
需要输入。我很困惑。请帮助我在Sinks.Map()中嵌入Map.Entry。是否需要一些迭代来插入地图?只有一个Sinks.map(map_name);错误报告是从Tulip到String的ClassCastException。@srikanth提出新问题并共享代码。
Sinks.map
在其输入上需要
map.Entry
实例,但如果不这样做,您应该会得到编译时错误。这是您在代码中放置的org.apache.kafka.common.utils.utils吗?如果是,则不支持方法条目。它是
com.hazelcast.jet.Util.entry()
,而不是
Utils
,我修复了响应<代码>映射。
Sinks.Map()
需要输入。我很困惑。请帮助我在Sinks.Map()中嵌入Map.Entry。是否需要一些迭代来插入地图?只有一个Sinks.map(map_name);错误报告是从Tulip到String的ClassCastException。@srikanth提出新问题并共享代码。
Sinks.map
在其输入上需要
map.Entry
实例,但如果不这样做,则会出现编译时错误。