Apache kafka 卡夫卡消费者客户端未在zookeeper上注册消费者组的偏移量

Apache kafka 卡夫卡消费者客户端未在zookeeper上注册消费者组的偏移量,apache-kafka,apache-zookeeper,kafka-consumer-api,Apache Kafka,Apache Zookeeper,Kafka Consumer Api,我正在尝试使用卡夫卡客户端v.0.10.2.1为卡夫卡主题创建具有不同消费群体的多个消费者。虽然我无法检索消费者组提交的最后一次抵销 目前,我的消费者财产如下所示 Properties cproperties = new Properties(); cproperties.put(ConsumerConfig.GROUP_ID_CONFIG, groupID); cproperties.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, my

我正在尝试使用卡夫卡客户端v.0.10.2.1为卡夫卡主题创建具有不同消费群体的多个消费者。虽然我无法检索消费者组提交的最后一次抵销

目前,我的消费者财产如下所示

Properties cproperties = new Properties();
    cproperties.put(ConsumerConfig.GROUP_ID_CONFIG, groupID);
    cproperties.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, my-broker));
    cproperties.put(ConsumerConfig.ENABLE_AUTO_COMMIT_CONFIG, "false");
    cproperties.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class.getName());
    cproperties.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, taskDecoder.getClass());
    cproperties.put(ConsumerConfig.REQUEST_TIMEOUT_MS_CONFIG, "60000");
如果没有属性Auto reset offset,我就不能使用该主题,但我不能使用此配置,我需要在zookeeper上注册消费者组。
因此,我也需要在zookeeper/consumers上创建一个消费者组。

您需要包含属性
auto.offset.reset
最早的
(或
最新的
,取决于您试图实现的目标),以避免在找不到偏移时引发异常(可能是因为数据被删除)

由于禁用了自动提交,您还需要确保手动提交偏移量

cproperties.put(ConsumerConfig.ENABLE_AUTO_COMMIT_CONFIG, "false");
为此,您可以使用

这就是卡夫卡。使用此API提交的偏移量 将用于每次重新平衡后的第一次提取,也用于 启动。因此,如果需要将偏移存储在除 卡夫卡,不应使用此API。提交的偏移量应为 应用程序将使用的下一条消息,即。 lastProcessedMessageOffset+1

这只会将偏移提交给卡夫卡。使用此方法提交的偏移量 API将用于每次重新平衡后的第一次提取,也用于 启动。因此,如果需要将偏移存储在除 卡夫卡,不应使用此API

这是一个异步调用,不会阻塞。有错误吗 遇到的错误或传递到回调(如果提供)或 丢弃

请注意,如果未提交偏移量,则如果
auto.offset.reset
设置为
none
,将引发异常

如果卡夫卡中没有初始偏移或当前 服务器上不再存在偏移量(例如,因为该数据 已删除):

最早:自动将偏移重置为最早偏移

最新:自动将偏移重置为最新偏移

none:如果未找到消费者组以前的偏移量,则向消费者抛出异常

其他任何内容:向使用者抛出异常


我正在提交偏移量,我只是无法获得偏移量,我将尝试将auto.offset.reset设置为none,看看会发生什么。如果将其设置为none,将引发异常,因为根据您所说的,偏移量未提交。不过,我没有收到异常,重置设置为“无”时,我可以从正确的偏移量恢复主题完成,但我无法使用zookeeper定位此偏移量的位置,是否还有其他地方可以查看?你的意思是如何获取当前偏移量?不,我想知道当前偏移量存储在哪里,因为我正在获取它。