Kafka Connect offset.storage.topic没有接收消息(即如何访问Kafka Connect偏移元数据?)

时间:2017-01-05 18:41:41

标签: apache-kafka apache-kafka-connect

我正在设置一个Kafka Connect分布式模式应用程序,它将是一个Kafka到S3管道。我正在使用Kafka 0.10.1.0-1和Kafka Connect 3.1.1-1。到目前为止事情进展顺利,但对我正在使用的大型系统来说重要的一个方面需要知道Kafka的偏移信息 - > FileSystem管道。根据文档,offset.storage.topic配置将是分布式模式应用程序用于存储偏移信息的位置。考虑到Kafka如何在“新”卡夫卡中存储消费者抵消,这是有道理的。但是,在使用FileStreamSinkConnector进行一些测试后,我的offset.storage.topic没有写入任何内容,这是默认值:connect-offsets

具体来说,我使用Python Kafka生产者将数据推送到主题,并使用Kafka Connect和FileStreamSinkConnect将主题中的数据输出到文件。这工作和行为正如我所期望的连接器行为。此外,当我停止连接器并启动连接器时,应用程序会记住主题中的状态,并且没有数据重复。但是,当我转到offset.storage.topic以查看存储的元数据偏移量时,主题中没有任何内容。

这是我使用的命令:

kafka-console-consumer --bootstrap-server kafka1:9092,kafka2:9092,kafka3:9092 --topic connect-offsets --from-beginning

我让这个命令运行一分钟左右后收到此消息:

Processed a total of 0 messages

总而言之,我有两个问题:

  1. 为什么即使我的分布式应用程序正确保持状态,也不会将偏移元数据写入应该存储的主题?
  2. 如何访问Kafka Connect分布式模式应用程序的偏移元数据信息?这是我团队的Lambda Architecture实现系统所必需的。
  3. 感谢您的帮助。

3 个答案:

答案 0 :(得分:2)

  1. Liju是正确的,连接偏移用于跟踪源连接器(具有生产者但不具有消费者)的偏移。接收器具有消费者和跟踪通常方式的偏移 - __consumer_offsets主题

  2. 查看上次提交的偏移量的最佳方法是使用消费者群组工具:

    bin / kafka-consumer-groups.sh --group connect-elastic-login-connector --bootstrap-server localhost:9092 --describe

  3. 群组名称始终为" connect - "和连接器名称(在我的例子中,弹性登录连接器)。这将显示该组提交的最新偏移量,该偏移量基本上承认直到此偏移量的所有消息都写入Elastic。

答案 1 :(得分:1)

偏移可能是提交给kafka默认偏移提交主题,即_consumer_offsets

答案 2 :(得分:0)

Confluent发布的新S3 Connector可能对您感兴趣。

根据您的描述,也许它可以显着简化您将记录从Kafka导出到S3存储桶的目标。