Распределение потребителей 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
собственность на потребителя.