我想使用Kafka高级消费者API,同时我想禁用自动提交偏移量。我试图通过以下步骤实现这一目标。
1) auto.commit.enable = false
2) offsets.storage = kafka
3) dual.commit.enabled = false
我创建了一个偏移管理器,它定期向kafka创建offsetcommit请求并提交偏移量。
我还有以下问题
1)高级消费者API是否自动从kafka存储中获取偏移量并使用该偏移量初始化自身?或者我应该使用简单的消费者API来实现这一目标?
2)基于kafka的抵消存储是否会在所有经纪商中被复制?或者仅在一个经纪人上维护?
答案 0 :(得分:0)
我创建了一个偏移管理器,它定期向kafka创建offsetcommit请求并提交偏移量。
如果您正在使用为您提供手动提交偏移的方法的高级使用者,则无需执行此操作,javadoc(在手动偏移控制下)为您提供了有关如何执行此操作的示例。 / p>
1)高级消费者API是否自动从kafka存储中获取偏移量并使用该偏移量初始化自身?或者我应该使用简单的消费者API来实现这一目标吗?
高级消费者将在您重新启动时获取最后提交的偏移量,这样您就可以从中断的位置恢复消费。
2)基于kafka的抵消存储是否会在所有经纪商中被复制?或者只在一个经纪人上维护?
Kafka将消费者偏移存储在名为__consumer_offsets
的内部主题中,默认情况下,其复制因子设置为3,包含50个分区。所以它被复制到3个经纪人。您可以在broker config中找到有关其配置的更多信息,它们以offset
或offsets
开头。