首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ReactiveKafkaConsumerTemplate receiveAutoAck的消息排序

ReactiveKafkaConsumerTemplate receiveAutoAck的消息排序
EN

Stack Overflow用户
提问于 2021-01-26 20:57:44
回答 1查看 193关注 0票数 0

我在问自己,spring-kafka项目的ReactiveKafkaConsumerTemplate是否保证了消息的正确排序。我阅读了reactor-kafka项目的文档,它指出消息应该使用concatMap操作符,但ReactiveKafkaConsumerTemplate至少在这里使用receiveAutoAck方法的情况下使用flatMap操作符:

https://github.com/spring-projects/spring-kafka/blob/master/spring-kafka/src/main/java/org/springframework/kafka/core/reactive/ReactiveKafkaConsumerTemplate.java#L69

反应堆-kafka项目参考文档:https://projectreactor.io/docs/kafka/release/reference/#_auto_acknowledgement_of_batches_of_records

我对使用receiveAutoAck很感兴趣,因为它似乎是最简单和最舒适的方法,这满足了我的用例。克服receiveAutoAck方法这种行为的唯一方法似乎是将ReactiveKafkaConsumerTemplate子类化并覆盖这种行为。这是正确的吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-26 23:33:20

我不认为这真的很重要,因为我们内部的数据源是Flux.fromIterable(consumerRecords),它不会因为迭代器而失去顺序,因此无论我们多么努力地不尝试并行处理它们,我们仍然会在一个迭代器中获得顺序。是的,我们扁平化的迭代器之间的顺序确实是不可预测的,但这对我们来说并不重要,因为我们担心的是单个分区的顺序,仅此而已。

然而,我认为我们肯定需要为前面提到的concatMap()解决这个问题,以避免在未来出现这样的混乱。请随时为这件事提供贡献!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65901791

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档