apache-kafka - 具有自动提交功能的 KafkaConsumer CPP API assign()
问题描述
我有一个 CPP Kafka 消费者,它使用 assign 来指定分区。因为我使用 assign() 分配分区,而不是使用我很好的 subscribe() 。正因为如此,我的重新平衡没有发生,我也很好。
问题 1:我想了解自动提交在这里是如何工作的。假设是否有 2 个消费者都具有相同的 groupId。他们俩都将获得所有更新,但有人可以帮助我了解提交将如何发生吗?如果只有一个消费者,则使用消费者组 ID 进行提交。但它如何与 2 个消费者一起工作。在这些情况下,我也没有看到任何提交失败。
问题 2:我分配分区时 rd_kafka_offsets_store 是如何工作的。他们进展顺利还是我应该在这些情况下使用订阅?
解决方案
- 具有相同 group.id 的两个非订阅消费者将在没有关联或冲突解决的情况下为其分配的分区提交偏移量,如果为他们分配了相同的分区,他们将覆盖彼此的提交。使用唯一的 group.id 或订阅主题。
rd_kafka_offsets_store()
与assign()
or的工作方式相同subscribe()
,即通过存储(在内存中)偏移量以在下一次自动或手动提交时提交。
推荐阅读
- javascript - 如何将 JSON 数据添加到卡片并显示给最终用户
- spring-boot - 在 Spring Boot 中使用 Redis 设置 Max Idle 连接
- wso2 - WSO2APIM - 应用程序对所有管理员可见
- regex - 如何通过正则表达式从同一数组点获取视图状态
- php - 大型数组的PHP json_encode慢
- laravel - 实时应用程序上的facebook sdk错误
- neo4j - neo4j 3.4.0 ubuntu:找不到或加载主类 org.neo4j.server.CommunityEntryPoint
- java - 面向对象设计 - 形状
- python - 在 Python 中需要一些帮助
- c# - ml.net 从字符串而不是文件训练模型输入