具有高级消费者API的Kafka offsetcommit请求

时间:2015-04-28 02:19:54

标签: java apache-kafka

我想使用Kafka高级消费者API,同时我想禁用自动提交偏移量。我试图通过以下步骤实现这一目标。

1) auto.commit.enable = false
2) offsets.storage = kafka
3) dual.commit.enabled = false

我创建了一个偏移管理器,它定期向kafka创建offsetcommit请求并提交偏移量。

我还有以下问题

1)高级消费者API是否自动从kafka存储中获取偏移量并使用该偏移量初始化自身?或者我应该使用简单的消费者API来实现这一目标?

2)基于kafka的抵消存储是否会在所有经纪商中被复制?或者仅在一个经纪人上维护?

1 个答案:

答案 0 :(得分:0)

  

我创建了一个偏移管理器,它定期向kafka创建offsetcommit请求并提交偏移量。

如果您正在使用为您提供手动提交偏移的方法的高级使用者,则无需执行此操作,javadoc(在手动偏移控制下)为您提供了有关如何执行此操作的示例。 / p>

  

1)高级消费者API是否自动从kafka存储中获取偏移量并使用该偏移量初始化自身?或者我应该使用简单的消费者API来实现这一目标吗?

高级消费者将在您重新启动时获取最后提交的偏移量,这样您就可以从中断的位置恢复消费。

  

2)基于kafka的抵消存储是否会在所有经纪商中被复制?或者只在一个经纪人上维护?

Kafka将消费者偏移存储在名为__consumer_offsets的内部主题中,默认情况下,其复制因子设置为3,包含50个分区。所以它被复制到3个经纪人。您可以在broker config中找到有关其配置的更多信息,它们以offsetoffsets开头。