Изящно справляйтесь с длительно выполняемыми задачами

#spring-boot #kubernetes #deployment #microservices #long-running-processes

Вопрос:

Я работаю в области архитектуры микросервисов. У каждой службы есть несколько длительных задач (обработка данных, формирование отчетов), которые могут занимать до 1-2 часов. Мы используем Кафку для очереди. Как обрабатывать случаи, когда перезапуск модуля или любое развертывание происходит непосредственно перед завершением задачи? Задача начнется снова и снова займет столько же времени. Есть ли какой-либо способ выполнить эти задачи независимо в модуле приложений?

Ответ №1:

вы можете использовать задания Kubernetes для выполнения этих типов задач, поэтому, как только задача будет выполнена, Kubernetes также автоматически удалит модули.

Задания также настраиваются и будут выполняться автономно, поэтому, если вы снова развернете задание, оно получит данные из Кафки, и начнется новое задание.

Комментарии:

1. Суровый Манвар Знаете ли вы какие-нибудь хорошие ресурсы для выполнения заданий Kubernetes с использованием java или любого другого языка программирования?

2. Да, есть клиент kubernetes, доступный для всех языков, которые вы можете проверить здесь : kubernetes.io/docs/reference/using-api/client-libraries

3. Для получения дополнительной информации, пожалуйста, посетите : github.com/kubernetes-client/java