【发布时间】:2017-09-01 10:45:00
【问题描述】:
我在一组 Docker 容器中使用 Confluent 3.2,其中一个正在运行 kafka-connect 工作器。
由于我不清楚的原因,我的四个连接器中的两个 - 具体来说,hpgraphsl 的MongoDB sink connector - 停止工作。我能够确定主要问题:连接器没有分配任何任务,可以通过调用GET /connectors/{my_connector}/status 看到。其他两个连接器(相同类型)没有受到影响,并且正在愉快地产生输出。
我尝试了三种不同的方法来让我的连接器通过 REST API 再次运行:
- 暂停和恢复连接器
- 重新启动连接器
- 删除和创建同名的连接器,使用相同的配置
这些方法都不起作用。我终于让我的连接器再次工作了:
- 以不同的名称删除和创建连接器,例如
my_connector_v2而不是my_connector
这里发生了什么?为什么我无法重新启动现有连接器并让它启动实际任务? kafka-connect 工作者或 Kafka 代理上的某些与 kafka-connect 相关的主题中是否有任何陈旧数据需要清理?
我在特定连接器的 github 存储库中有 filed an issue,但我觉得这实际上可能是与 kafka-connect 的内在函数相关的一般错误。有什么想法吗?
【问题讨论】:
-
这将特定于连接器插件。任务分配是连接器实现的责任,因此可能不满足启动任务的条件。
-
您从哪里获取这些信息?我在使用的连接器实现中没有看到任何任务分配逻辑:github.com/hpgrahsl/kafka-connect-mongodb/blob/master/src/main/… 连接器只是创建配置的#tasks 副本,而不实例化任何任务。所以在 Kafka Connect 运行时类中必须有一些任务启动逻辑,对吗?
标签: mongodb docker apache-kafka apache-kafka-connect confluent-platform