【发布时间】:2017-06-23 16:39:23
【问题描述】:
我在使用 Confluent JDBC 连接器时遇到了非常奇怪的行为。我很确定它与 Confluent 堆栈无关,而是与 Kafka-connect 框架本身有关。
所以,我将offset.storage.file.filename 属性定义为默认/tmp/connect.offsets 并运行我的接收器连接器。显然,我希望连接器在给定文件中保留偏移量(它在文件系统上不存在,但应该自动创建,对吧?)。文档说:
offset.storage.file.filename用于存储连接器偏移量的文件。通过将偏移量存储在磁盘上,可以在单个节点上停止和启动独立进程,然后从之前停止的位置恢复。
但 Kafka 的行为方式完全不同。
- 它检查给定文件是否存在。
- 它不是,Kafka 只是忽略它并在 Kafka 主题中保留偏移量。
- 如果我手动创建给定文件,无论如何读取都会失败 (EOFException),并且偏移量会再次保留在主题中。
这是一个错误,或者更有可能是我不明白如何使用此配置?我了解两种持久化偏移量的方法之间的区别,并且文件存储更适合我的需求。
【问题讨论】:
-
请问您解决了这个问题吗?我在独立模式下运行 Elasticsearch Kafka Connect 接收器时看到了相同的行为。
-
@John,很遗憾没有,我没有任何更新
标签: java apache-kafka apache-kafka-connect