在kafka connect中自动重新连接失败的任务

57hvy0tb  于 2021-06-06  发布在  Kafka
关注(0)|答案(1)|浏览(403)

我正在使用一个带有kafka connect的mongo源插件。我检查了源任务状态,它正在运行并监听mongo集合。
我手动停止mongod服务并等待了大约1分钟,然后再次启动它。
我检查了源任务以查看是否有任何东西可以自行修复,30分钟后似乎什么都不起作用。
重新启动连接器后,它才重新开始工作。
因为mongo source没有设置retries+backoff超时的选项,所以我搜索了一个配置,这个配置适合一个简单的场景:使用kafka connect配置在x时间后重新启动失败的任务。找不到任何..:/我可以用一个简单的脚本来实现这一点,但是在kafka connect中肯定有一些东西可以管理失败的任务。甚至在蒙戈源头。。。我不想在一分钟后就这么快失败…:/

lyr7nygr

lyr7nygr1#

除了使用RESTAPI查找失败的任务并提交重新启动请求之外,没有其他方法了—然后定期运行。例如

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\}

资料来源:https://rmoff.net/2019/06/06/automatically-restarting-failed-kafka-connect-tasks/

相关问题