Как масштабировать потребительские приложения kafka на одной и той же топике c с несколькими работниками (одинаковое количество разделов) - PullRequest
1 голос
/ 19 марта 2020

Я хотел бы понять, как масштабировать приложение (более чем в нескольких случаях), потребляющее сообщения от Kafka на одной и той же топике c. Я сомневаюсь, что если у меня есть A topi c с 4 разделами, и я создаю @KafkaListener с атрибутом concurrency = 4 и groupId = "FixedGroup", поэтому Spring создаст 4 рабочих, и эти 4 рабочих будут выбраны kafka для потреблять сообщения, по одному рабочему для каждого раздела, если я масштабирую новый экземпляр того же приложения (масштабирования), эти 4 рабочих уже назначены для работы для каждого раздела, и новое приложение, подобное этому, в той же группе, что и предыдущий один (поскольку это было просто автоматическое масштабирование) будет простаивать, и автоматическое масштабирование не улучшит производительность обработки сообщений с горизонтальным масштабированием, как следует горизонтальное масштабирование и управлять распределением обработки сообщений между приложениями в одной теме / разделе?

1 Ответ

2 голосов
/ 19 марта 2020

не улучшит производительность обработки сообщений

Это правильно; только один потребитель в той же группе может потреблять из раздела.

Вам нужно как минимум столько же разделов, сколько и потребителей.

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

Практического решения, кроме добавления большего количества разделов, не существует.

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