spring - spring kafka消费者单批拉取不同分区的数据
问题描述
我们有 1 个主题和 3 个分区,单个消费者。我们使用 Spring 的 KafkaListener 注释将数据作为批次 (25) 消费。有时我们会看到单次拉取 25 条消息包含来自不同分区的数据。
这是春天的预期行为吗?如果是这样,提交如何工作?当我们通过手动提交调用 acknowle() 方法时,spring 会负责提交所有分区。
解决方案
不是春天,是卡夫卡;这就是它的工作原理。
您必须确认每条消息,但是,是的,容器会处理提交。
max.poll.records
如果您只想要来自单个分区的消息,则可以设置为 1。
顺便说一句,手动确认是很不寻常的;通常最好让容器使用AckMode.BATCH
or来处理偏移量AckMode.RECORD
。
推荐阅读
- python - discord.py:如何检查消息是否包含列表中的文本
- javascript - 如何防止输入字段在本机反应中接受超过2位小数?
- java - 获取数组平均值的复杂性
- floating-point - 我们如何需要 17 个有效十进制数字来识别任意双精度浮点数?
- javascript - 为什么 HTML 集合中的元素数量不等于 HTML 集合对象的长度?
- c# - 从列表视图模型更新服务中的多个表行?
- swift - Swift 错误:containerIdentifier 不能为 nil(CKexception)
- python - OSError: [Errno 24] 打开的文件太多;在蟒蛇中;难以调试
- python - 在 MacOS Big Sur (11.3.1) 上安装 lxml
- python - 如何在 tox 集成中使用 --use-features=in-tree-build 选项?