apache-kafka - Kafka 无法跟踪最后提交的偏移量
问题描述
kakfa-broker 在管理偏移量方面是否存在任何已知问题?Bcz,我们面临的问题是,当我们尝试重新启动 kafka-consumer(即应用程序重新启动)时,有时所有偏移量都重置为 0。完全不知道为什么消费者无法从最后提交的偏移量开始。
我们最终在 prod 中面临这个问题,其中再次重播了整个 q 事件:
- spring-boot 版本 -- 2.2.6 版本
- spring-kafka - 2.3.7 版本
- 卡夫卡客户端-2.3.1
- 阿帕奇卡夫卡 - kafka_2.12-2.3.1
我们有 10 个主题,每个主题有 50 个分区,属于同一组,我们在运行时根据负载增加主题分区和消费者计数。
- 自动提交 = 假
- 处理后同步提交每个偏移量
- 最大轮询记录设置为 1
在所有这些配置之后,它在本地设置中按预期运行,在部署到 prod 后,我们不会在每次重新启动时都看到此类问题。有没有我遗漏的配置。完全无脑!!!!
解决方案
您需要确保:
1)您使用的是相同的消费者组 ID
2)auto.offset.reset
设置为latest
spring.kafka.consumer.group-id=your-consumer-group-id
spring.kafka.consumer.auto-offset-reset=latest
如果您仍然看到此问题,请尝试启用自动提交
spring.kafka.consumer.enable-auto-commit=true
如果问题消失,则意味着您的手动提交未按预期工作。
推荐阅读
- php - 使用 API 发送 XML 发布请求
- django - Django Rest Framework 功能视图帖子不起作用
- slam - 分段错误 printf
- swift - 更改 UITextField 的文本不会触发 rx.text 活页夹
- vba - ActiveX ComboBox_Change event falsely triggering a Compile Error: Variable not defined
- javascript - Javascript:array.push() 仅在 for 循环中从源数组中推送最后一个字符串
- spring-integration - 如何使用 @Aggregator 注释设置 expire-groups-upon-completion?
- chatscript - 如何在 VS2017 中构建 ChatScript
- python - 在 Codecademy 的本课中添加 raw_inputs
- django - 自动填充 Django 模型