我正在设置一个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
总而言之,我有两个问题:
感谢您的帮助。
答案 0 :(得分:2)
Liju是正确的,连接偏移用于跟踪源连接器(具有生产者但不具有消费者)的偏移。接收器具有消费者和跟踪通常方式的偏移 - __consumer_offsets主题
查看上次提交的偏移量的最佳方法是使用消费者群组工具:
bin / kafka-consumer-groups.sh --group connect-elastic-login-connector --bootstrap-server localhost:9092 --describe
群组名称始终为" connect - "和连接器名称(在我的例子中,弹性登录连接器)。这将显示该组提交的最新偏移量,该偏移量基本上承认直到此偏移量的所有消息都写入Elastic。
答案 1 :(得分:1)
偏移可能是提交给kafka默认偏移提交主题,即_consumer_offsets
答案 2 :(得分:0)
Confluent发布的新S3 Connector可能对您感兴趣。
根据您的描述,也许它可以显着简化您将记录从Kafka导出到S3存储桶的目标。