Распределение потребителей Kafka не работает, как ожидалось

У меня есть три темы, каждая из которых имеет три раздела на кластере kafka.

сейчас всего 9 разделов. и когда я создаю 9 потребителей... 6 бездействуют. только три потребителя используются.

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

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

Например, у меня есть три темы Topic_A,Topic_B и Topic_C и три раздела в каждой. отсюда и следующие разделы:

Topic_A_0, Topic_A_1, Topic_A_2, Topic_B_0, Topic_B_1, Topic_B_2, Topic_C_0, Topic_C_1, Topic_C_2

Когда я создаю 9 потребителей, распределение работает следующим образом:

Consumer1: Topic_A_0,Topic_B_0,Topic_C_0 
Consumer2: Topic_A_1,Topic_B_1,Topic_C_1 
Consumer3: Topic_A_2,Topic_B_2,Topic_C_2
Consumer4,Consumer5,Consumer6,Consumer7,Consumer8,Consumer9 are idle

Так должно быть

Consumer1: Topic_A_0
Consumer2: Topic_A_1
Consumer3: Topic_A_2

Consumer4: Topic_B_0
Consumer5: Topic_B_1
Consumer6: Topic_B_2

Consumer7: Topic_C_0 
Consumer8: Topic_C_1 
Consumer9: Topic_C_2

Нужна ли какая-либо конфигурация, чтобы все 9 потребителей могли получать сообщения из 9 уникальных разделов?

2 ответа

Стратегия назначения разделов по умолчанию не работает по темам, поэтому это ожидаемое поведение. Подобный вопрос здесь: потребители Kafka сбалансированы по темам

Убедитесь, что все ваши потребители подписываются на один и тот же набор тем под одним и тем же идентификатором группы потребителей. В качестве списка тем вы можете передать предопределенный список или регулярное выражение, на которое подписчики могут подписаться. Идентификатор потребителя может быть установлен с помощью group.id собственность на потребителя.

Другие вопросы по тегам