Как балансировать рассылку сообщений в Kafka на примере микросервисов на Nest.js?

Я создал приложение и несколько инстансов микросервиса Nest.js, которые взаимодействуют через Kafka.
Сейчас первый запущенный микросервис принимает сообщения, а второй и последующие копии - не получают сообщения.
Если я закрою первый микросервис, то спустя несколько секунд, сообщения начнёт получать тот, который подключился вторым.
Как мне разбалансировать рассылку сообщений, что б были задействованы все микросервисы? Пример с официально сайта Nest.js взял по взаимодействию с кафкой.
  • Вопрос задан
  • 248 просмотров
Пригласить эксперта
Ответы на вопрос 1
mayton2019
@mayton2019
Bigdata Engineer
Любой Kafka-consumer имеет атрибут group.id. И если у нескольких консюмеров он совпадает
то они начинают делить топик поровну (по round-robin). В более расширенном варианте - нужно
настраивать поля самого сообщения чтоб был более умный партишенинг.

Несмотря на то что Кафка работает быстро, сам процесс включения и перебалансировки консюмеров
может быть не очень быстрым поэтому такие манипуляции следует делать не очень часто.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы