apachekafka流将ktable具体化到一个主题似乎很慢

sq1bmfud  于 2021-06-08  发布在  Kafka
关注(0)|答案(1)|浏览(337)

我在使用Kafka流,我试图把一个ktable具体化为一个主题。
它工作,但似乎每30秒左右。
kafka stream如何/何时决定将ktable的当前状态具体化为主题?
有没有办法缩短这个时间,让它更“实时”?
这是我正在使用的实际代码

// Stream of random ints: (1,1) -> (6,6) -> (3,3)
// one record every 500ms
KStream<Integer, Integer> kStream = builder.stream(Serdes.Integer(), Serdes.Integer(), RandomNumberProducer.TOPIC);

// grouping by key
KGroupedStream<Integer, Integer> byKey = kStream.groupByKey(Serdes.Integer(), Serdes.Integer());

// same behaviour with or without the TimeWindow
KTable<Windowed<Integer>, Long> count = byKey.count(TimeWindows.of(1000L),"total");

// same behaviour with only count.to(Serdes.Integer(), Serdes.Long(), RandomCountConsumer.TOPIC);
count.toStream().map((k,v) -> new KeyValue<>(k.key(), v)).to(Serdes.Integer(), Serdes.Long(), RandomCountConsumer.TOPIC);
zzoitvuj

zzoitvuj1#

这由commit.interval.ms控制,默认值为30秒。更多详情请参见:http://docs.confluent.io/current/streams/developer-guide.html
缓存的语义是,只要最早的commit.interval.ms或cache.max.bytes.buffering(缓存压力)命中,数据就会被刷新到状态存储并转发到下一个下游处理器节点。
在这里:
https://cwiki.apache.org/confluence/display/kafka/kip-63%3a+unify+store+and+downstream+caching+in+streams

相关问题