KafkaConsumer CPP API assign() 自动提交
KafkaConsumer CPP API assign() with auto commit
我有一个 CPP Kafka 消费者,它使用分配来指定分区。因为我使用 assign() 分配分区而不是使用我可以接受的 subscribe() 。因此,我的重新平衡没有发生,我也很好。
问题一:
我想在这里了解自动提交的工作原理。假设有 2 个消费者,它们都具有相同的 groupId。他们都将获得所有更新,但有人可以帮助我了解提交将如何在这里发生吗?如果只有一个消费者,则使用消费者组 ID 进行提交。但是它如何与 2 个消费者一起工作。在这些情况下,我也没有看到任何提交失败。
问题二:
分配分区时 rd_kafka_offsets_store 如何工作。在这些情况下,它们进展顺利还是我应该使用订阅?
- 两个具有相同 group.id 的非订阅消费者将在没有关联或冲突解决的情况下为他们分配的分区提交偏移量,如果他们被分配相同的分区,他们将覆盖彼此的提交。
使用独特的 group.id 或订阅主题。
rd_kafka_offsets_store()
与 assign()
或 subscribe()
的工作方式相同,即通过存储(在内存中)要在下一次自动或手动提交时提交的偏移量。
我有一个 CPP Kafka 消费者,它使用分配来指定分区。因为我使用 assign() 分配分区而不是使用我可以接受的 subscribe() 。因此,我的重新平衡没有发生,我也很好。
问题一: 我想在这里了解自动提交的工作原理。假设有 2 个消费者,它们都具有相同的 groupId。他们都将获得所有更新,但有人可以帮助我了解提交将如何在这里发生吗?如果只有一个消费者,则使用消费者组 ID 进行提交。但是它如何与 2 个消费者一起工作。在这些情况下,我也没有看到任何提交失败。
问题二: 分配分区时 rd_kafka_offsets_store 如何工作。在这些情况下,它们进展顺利还是我应该使用订阅?
- 两个具有相同 group.id 的非订阅消费者将在没有关联或冲突解决的情况下为他们分配的分区提交偏移量,如果他们被分配相同的分区,他们将覆盖彼此的提交。 使用独特的 group.id 或订阅主题。
rd_kafka_offsets_store()
与assign()
或subscribe()
的工作方式相同,即通过存储(在内存中)要在下一次自动或手动提交时提交的偏移量。