【问题标题】:Automatically reconnect failed tasks in Kafka-Connect在 Kafka-Connect 中自动重新连接失败的任务
【发布时间】:2020-04-26 09:14:03
【问题描述】:

我正在使用带有 Kafka-connect 的 mongo-source 插件。 我检查了 source 任务状态,它正在运行并监听一个 mongo 集合。

我手动停止了 mongod 服务并等待了大约 1 分钟,然后我重新启动它。

我检查了源任务以查看是否有任何东西可以自行修复,但 30 分钟后似乎没有任何效果。

只有在重新启动连接器后它才能再次开始工作。

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

【问题讨论】:

    标签: apache-kafka apache-kafka-connect mongodb-kafka-connector


    【解决方案1】:

    除了使用 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\}
    

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

    【讨论】:

    • 不错。应该是内置功能。
    • 这是一个了不起的单行,@Robin。
    猜你喜欢
    • 1970-01-01
    • 2021-10-29
    • 2019-01-21
    • 2020-08-28
    • 1970-01-01
    • 2019-05-17
    • 2018-03-01
    • 2020-06-11
    • 1970-01-01
    相关资源
    最近更新 更多