Автоматически переподключать невыполненные задачи в Kafka-Connect - PullRequest
2 голосов
/ 08 января 2020

Я использую плагин mon go -source с Kafka-connect. Я проверил состояние задачи source , и он выполнялся и прослушивал коллекцию mon go.

Я вручную остановил службу mongod и подождал около 1 минуты, затем снова запускаю ее .

Я проверил исходную задачу, чтобы убедиться, что что-то будет исправлено, и через 30 минут кажется, что ничего не работает.

Только после перезапуска разъема он снова начал работать.

Поскольку у источника mon go нет параметров для установки повторных попыток + откат по истечении времени ожидания, я искал конфигурацию, которая будет соответствовать простому сценарию: перезапустить неудавшуюся задачу через X раз, используя конфигурацию Kafka-connect. не могу найти ..: / Я могу сделать это с помощью простого скрипта, но в Kafka-connect должно быть что-то, что управляет неудачными задачами. или даже в mon go -источнике ... Я не хочу, чтобы он так быстро проваливался через 1 минуту ...: /

1 Ответ

3 голосов
/ 08 января 2020

Нет другого способа, кроме как использовать REST API для поиска сбойной задачи и отправки запроса на перезапуск, а затем запускать его периодически c. Например

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/

...