Баланс нагрузки Кафка записи потребления при использовании шаблона темы - PullRequest
0 голосов
/ 08 февраля 2019

Если два процесса, использующие одну и ту же группу потребителей (group.id), подпишутся на один и тот же topicPattern - Кафка будет чем загружать разрешенные темы между двумя процессами?

В моемПримерно 400 тем соответствуют шаблону, и каждая тема имеет один раздел.Интересно, смогу ли я сбалансировать потребление тем через разные процессы с одной и той же группой потребителей, но кажется, что только один процесс обрабатывает все темы.Это потому, что только разделы сбалансированы по нагрузке - или, может быть, потому что тема шаблон используется подпиской?


Я сделал более глубокую отладку.Моя тестовая установка - это не два процесса, а два потока - думаю, это не должно иметь значения.Отладочная печать описания темы выдает что-то вроде этого (IP-адреса обфусцированы):

(groupId=foo-bar-group, isSimpleConsumerGroup=false, 
  members=
   (memberId=KafkaTestApplication:KafkaTestApplication-1-20126d55-678d-46f5-bc73-3769db2c8901, 
     clientId=KafkaTestApplication:KafkaTestApplication-1, 
     host=/aa.bb.c.dd, 
     assignment=(topicPartitions= <all topics here>)),
   (memberId=KafkaTestApplication:KafkaTestApplication-2-8d34e81a-8f57-4d4e-bd9e-b56edc4e706c, 
     clientId=KafkaTestApplication:KafkaTestApplication-2,
     host=/aa.bb.c.dd, 
     assignment=(topicPartitions=)), 
     partitionAssignor=range, 
     state=Stable, 
     coordinator=aaa.bb.ccc.d:9092 (id: 9 rack: null)
)

Я вижу, что у меня есть два разных члена в группе потребителей с двумя разными clientIds.Тем не менее, все темы назначены первому потребителю, а второму потребителю не назначены темыЯ ожидал, что оба участника получат некоторые темы.Оба участника опрашивают каждые несколько секунд.

Ответы [ 2 ]

0 голосов
/ 27 февраля 2019

Я наконец-то узнал, что нужно изменить, чтобы получить нужную балансировку темы / раздела.Мне пришлось установить свойство Consumer

partition.assignment.strategy=org.apache.kafka.clients.consumer.RoundRobinAssignor

Настройка по умолчанию (org.apache.kafka.clients.consumer.RangeAssignor) не работает для моей настройки.Почему объясняется здесь , как пользователь 152468 упоминал в комментариях.Спасибо за это!

0 голосов
/ 08 февраля 2019

Когда начинается второй процесс той же группы, группа должна перебалансировать назначение темы раздел , да.

Однако я не имел никакого опыта работы с шаблонами подписки, ноЯ не ожидаю, что это будет работать иначе, чем предоставление прямого списка тем

...