连接器中的任务何时移至未分配状态?

时间:2017-04-14 06:31:32

标签: apache-kafka apache-kafka-connect

我在分布式模式下运行CP3.2,某些连接器甚至用“tasks.max”定义:“1”具有任务“UNASSIGNED”状态。我已经增加了分配给worker的内存并重新启动了worker已经解决了我的问题或者添加了一个更多的worker来解决这个问题。

如果“tasks.max”>它对我没问题。 1有一些任务处于“UNASSIGNED”状态,但如果我只定义一个任务,它应该处于“RUNNING”状态。

但是我需要了解任务的所有条件是什么进入“UNASSIGNED”状态以及如何解决这个问题(让它运行)。

此致

Aradhya

2 个答案:

答案 0 :(得分:2)

如果已分配用于运行此连接器任务的辅助任务成功关闭,则任务将进入 UNASSIGNED 状态。这与此连接器应该生成的任务总数无关(tasks.max属性)。您可以按照onShutdown中对AbstractHerder方法的调用,在代码中对此进行跟踪。转换到 UNASSIGNED 状态要求没有发生故障或正在运行的工作人员任务抛出异常并且已触发正常关闭。

您的连接器任务是否有可能在其常规迭代循环开始时停止?你能提供更多信息吗?它是来源还是水槽?

答案 1 :(得分:0)

在我的情况下,我的连接器转到UNASSIGNED只是因为我并行运行了2或4个连接器,而debezium开始在连接器上工作时却感到困惑并停止在该连接器上工作,即连接器进入UNASSIGNED状态就我而言。

  • 可能是因为我所有的连接器都从不同位置的-2数据库中收集大量数据,当我检查debezium日志时,它表明正在停止连接器,然后如果debizium的容限超出了它,它就会停止MYSQL连接

要解决此问题,我只需重新启动docker compose或连接器,两者都可以帮助我将连接器置于运行状态:

docker-compose restart

curl -X POST localhost:8083/connectors/<connector-name>/restart