谁负责抵消维修?

emi*_*lly 4 java apache-kafka

下面是卡夫卡文档public ConsumerRecords<K,V> poll(long timeout)

获取使用其中一个subscribe/assign API指定的主题或分区的数据.在轮询数据之前没有订阅任何主题或分区是错误的.在每次轮询时,消费者将尝试使用最后消耗的偏移量作为起始偏移量并按顺序提取.最后消耗的偏移量可以通过seek(TopicPartition,long)手动设置,也可以自动设置为订阅分区列表的最后一个提交偏移量

我的问题是谁(经纪人或消费者或动物园主管)负责维护偏移量以及存储位置(存储器或光盘)?如果消费者将其保留在内存中,消费者是否会从开始阅读它或消费者应用程序需要保留在光盘中?

Mic*_*cki 6

作为您引用的文档中的"偏移和消费者位置"部分,偏移量由Kafka(经纪人)存储:

Kafka为分区中的每条记录维护一个数字偏移量

具体来说,它将它们存储在名为"__consumer_offsets"的"内部"消费者偏移主题中.

"旧消费者"api(在即将发布的v0.11中弃用)允许您选择在kafka或zookeeper中存储偏移量.

此外,如果您愿意,您可以自由地在消费者方面保存偏移量并始终在启动时寻找这些偏移量.

因此,总之,根据您的消费者API版本和您的偏好,偏移量可以存储在经纪人或动物园管理员和/或消费者一侧.