Масштабирование микросервиса с использованием внешнего и внутреннего экземпляров - PullRequest
1 голос
/ 27 октября 2019

Я разрабатываю серию микросервисов с использованием Spring Boot и планирую развернуть их в Kubernetes.

Некоторые из микросервисов состоят из API, который записывает сообщения в очередь kafka, и слушателя, который прослушиваетставить в очередь и выполняет соответствующие действия (например, запись в БД и т. д., создание сообщений для последующей обработки).

Эти службы работают локально, но я планирую запустить несколько экземпляров микросервиса в Kubernetes. Я думаю о следующих опциях:

  1. Запускать несколько экземпляров как есть (т.е. каждый микросервис служит API и слушателем).

  2. Введите переменную среды FRONTEND, BACKEND. Если переменная FRONTEND имеет значение true, не настраивайте процесс слушателя. Если переменная BACKEND имеет значение true, настройте процесс прослушивателя. Таким образом, я могу начать масштабирование того, как мне могут понадобиться внешние и бэкенд-сервисы, а также воспользоваться возможностью выключения бэкэнд-сервисов без потери запросов.

Любые указатели, лучшие практики или любые другие вариантыбудет высоко ценится.

1 Ответ

2 голосов
/ 27 октября 2019

Вы можете делать, как вы описываете, с переменными окружения, или вы также можете быть заинтересованы в создании приложения с разными профилями / конфигурацией бина и создании двух разных изображений.

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

Вам также может быть интересен шаблон Leader Election , где вам нужна только одна активная реплика, если это имеет смысл, только если одна реплика обрабатывает события из очереди. Эту проблему также можно решить, используя только одну реплику в зависимости от ваших требований Наличие .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...