Потоки Akka - использование кластера синглтона для развертывания при сбое / без простоев - PullRequest
0 голосов
/ 14 апреля 2019

У меня есть приложение для обработки потоков, созданное с помощью akka streaems.Входные данные представляют собой набор тем kafka, приложение выполняет недетерминированную операцию с сохранением состояния и сохраняет результат в другой теме kafka.

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

Теперь я хочу реализовать развертывание без простоев.Не должно быть более одного экземпляра приложения, работающего одновременно (из-за недетерминированного характера процесса и каждого следующего вычисления, зависящего от результата предыдущего), поэтому я планирую использовать одноэлементную функцию кластера akka,

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

Одновременная передача обслуживания занимает несколько секунд, поэтому этот метод не обеспечивает реальной стратегии развертывания с нулевым временем простоя.Есть ли какой-то другой подход, который я могу использовать?

...