Apache kafka 在Kafka Connect中自动重新连接失败的任务

Apache kafka 在Kafka Connect中自动重新连接失败的任务,apache-kafka,apache-kafka-connect,mongodb-kafka-connector,Apache Kafka,Apache Kafka Connect,Mongodb Kafka Connector,我正在使用Kafka connect的mongo源插件。 我检查了源任务状态,它正在运行并侦听mongo集合 我手动停止mongod服务并等待大约1分钟,然后再次启动它 我检查了源任务,看是否有任何东西可以自行修复,30分钟后似乎什么都不起作用 只有在重新启动连接器后,它才重新开始工作 由于mongo source没有在超时时设置重试+回退的选项,因此我搜索了一个适合简单场景的配置:使用Kafka connect配置在X时间后重新启动失败的任务。找不到任何..:/ 我可以用一个简单的脚本来实现这

我正在使用Kafka connect的mongo源插件。 我检查了源任务状态,它正在运行并侦听mongo集合

我手动停止mongod服务并等待大约1分钟,然后再次启动它

我检查了源任务,看是否有任何东西可以自行修复,30分钟后似乎什么都不起作用

只有在重新启动连接器后,它才重新开始工作

由于mongo source没有在超时时设置重试+回退的选项,因此我搜索了一个适合简单场景的配置:使用Kafka connect配置在X时间后重新启动失败的任务。找不到任何..:/
我可以用一个简单的脚本来实现这一点,但卡夫卡连接中必须有一些东西可以管理失败的任务。甚至在mongo source中。。。我不希望它在一分钟后就这么快失败…:/

除了使用REST API查找失败的任务并提交重新启动请求,然后定期运行,没有其他方法。比如说

curl -s "http://localhost:8083/connectors?expand=status" | \
  jq -c -M 'map({name: .status.name } +  {tasks: .status.tasks}) | .[] | {task: ((.tasks[]) + {name: .name})}  | select(.task.state=="FAILED") | {name: .task.name, task_id: .task.id|tostring} | ("/connectors/"+ .name + "/tasks/" + .task_id + "/restart")' | \
  xargs -I{connector_and_task} curl -v -X POST "http://localhost:8083"\{connector_and_task\}

资料来源:

Nice。“应该是一个内置功能。这是一个惊人的单行,”罗宾说。