Kafka接收器连接器:即使重新启动后也没有分配任务

ped*_*sen 5 mongodb apache-kafka docker apache-kafka-connect confluent-platform

我在一组 Docker 容器中使用 Confluence 3.2,其中一个容器正在运行 kafka-connect 工作线程。

由于我尚不清楚的原因,我的四个连接器中的两个 - 具体来说,hpgraphsl 的MongoDB 接收器连接器- 停止工作。我能够确定主要问题:连接器没有分配任何任务,通过调用 可以看出GET /connectors/{my_connector}/status。其他两个连接器(同一类型)没有受到影响,并且正在愉快地产生输出。

我尝试了三种不同的方法来通过 REST API 让连接器再次运行:

  • 暂停和恢复连接器
  • 重新启动连接器
  • 使用相同的配置删除并创建同名的连接器

所有方法都不起作用。我终于让我的连接器再次工作:

  • 删除连接器并以不同的名称创建连接器,my_connector_v2例如my_connector

这里发生了什么?为什么我无法重新启动现有连接器并让它启动实际任务?kafka-connect 工作线程或 Kafka 代理的某些与 kafka-connect 相关的主题中是否有任何陈旧数据需要清理?

我已经在特定连接器的 github 存储库上提交了一个问题,但我觉得这实际上可能是与 kafka-connect 的内在相关的一般错误。有任何想法吗?

Ren*_*hya 2

我遇到过这个问题。如果 SinkTask 或 SourceTask 启动所需的资源较少,则可能会发生这种情况。

有时分配给工作线程的内存可能会减少。默认情况下,为工作人员分配 250MB。请增加这个。下面是为分布式模式运行的worker分配2GB内存的示例。

KAFKA_HEAP_OPTS="-Xmx2G" sh $KAFKA_SERVICE_HOME/connect-distributed $KAFKA_CONFIG_HOME/connect-avro-distributed.properties