Я работаю с Apache Kafka и его Java-клиентом, и я вижу, что сообщения сбалансированы по нагрузке у разных потребителей Kafka, принадлежащих к одной и той же группе (то есть, используя один и тот же идентификатор группы).
В моем приложении мне нужно, чтобы все пользователи читали все сообщения.
Поэтому у меня есть несколько вопросов:
-
если я не устанавливаю идентификатор группы в свойствах "Потребительские", какой идентификатор группы будет указан Kafka Consumer?
-
Есть ли одно значение по умолчанию?
-
Создает ли клиент случайное значение каждый раз?
-
Нужно ли мне создавать разные идентификаторы для каждого потребителя, чтобы быть уверенным, что каждый получает все сообщения?
EDIT: Спасибо за ваши ответы.
Вы правы: если человек не задает идентификатор группы потребителей, Кафка должен жаловаться.
Однако я обнаружил, что если идентификатор группы равен NULL, клиент Java устанавливает его в пустую строку "", чтобы избежать проблем. По-видимому, это значение по умолчанию, которое я искал.
Удивляя всех моих потребителей, даже если я не устанавливаю их groupIds (и поэтому они все с groupId == "), похоже, получают все сообщения, которые производитель пишет.
Я все еще не могу объяснить это: любые предложения?