我是新手,使用的是Kafka 1.0。
我使用pull模式读取kafka消息,也就是说,我周期性的 poll()
的主题,但我没有把偏移量写回给Kafka,请问Kafka如何知道我消耗了哪些偏移量,或者Kafka是如何记住进度的?
我想问一下,Kafka是怎么知道我消耗了哪些偏移量的,或者Kafka是通过什么机制记住进度的(Kafka偏移量)。
每个消费组都会维护它的偏移量,每个话题分区。由于 v0.9
每个消费群的已承诺的偏移量信息被存储在一个内部主题中,该主题(默认情况下)称为 __consumer_offsets
(在v0.9之前,这些信息存储在Zookeeper上)。当偏移管理器收到一个 OffsetCommitRequest
它将请求附加到一个特殊的压缩的Kafka主题,命名为 __consumer_offsets
. 最后,只有当offsets主题的所有副本都收到offsets时,offsets管理器才会向消费者发送一个成功的offsets提交响应。