Обработка обновлений клиентов kafka в kubernetes
У меня есть кластер Kafka, работающий на AWS MSK, и клиенты Kafka, работающие с клиентами и потребителями, работают в kubernetes. Производитель отвечает за отправку потока данных в Kafka. Мне нужна помощь в решении следующих проблем:
Допустим, в коде производителя произошли некоторые изменения кода, и его необходимо повторно развернуть в kubernetes. Как я могу это сделать? Поскольку данные генерируются постоянно, я не могу просто остановить уже работающего производителя и развернуть обновленный. В этом случае я потеряю данные между процессами обновления.
Иногда из-за паники (golang) в коде клиент аварийно завершает работу, но, поскольку он работает как модуль, kubernetes перезапускает его. Я не могу понять, хорошо это или плохо.
Спасибо
0 ответов
Что касается вашего первого вопроса, я бы посоветовал провести скользящее обновление вашего развертывания в кластере. Во-вторых, это общее поведение развертываний в кубернетах. Я мог бы подумать о решении для внешнего мониторинга, которое развертывает ваше приложение или прекращает обработку запросов в случаеpanic
. Было бы лучше, если бы вы могли объяснить, зачем именно вам нужно такое поведение.!