Применяются ли концепции параллелизма Кафки при работе в режиме консоли? - PullRequest
0 голосов
/ 20 марта 2020

Итак, я новичок в Кафке и некоторое время читал об этом. Я нашел эту информацию на слиянии.

https://docs.confluent.io/current/streams/architecture.html

Так что я понял из этого, скажем, у меня есть topi c с именем plain_text, куда я просто отправляю куча записей в виде простого текста, и у меня есть только один брокер с одним topi c и одним разделом. Теперь я запускаю 2 потребительских экземпляра ConsumerA и ConsumerB. Поскольку количество разделов меньше, чем число потребителей, только один из потребителей должен активно потреблять сообщения, оставляя другого в нерабочем состоянии. Пожалуйста, исправьте меня, если я ошибаюсь.

Я запустил тест с использованием скриптов kafka-console-

Запустите кластер zookeeper

bin/zookeeper-server-start.sh config/zookeeper.properties

Запустите брокер Kafka на localhost: 9092

bin/kafka-server-start.sh config/server.properties

создать файл topi c plain_text с одним разделом

bin/kafka-topics.sh --create \
    --bootstrap-server localhost:9092 \
    --replication-factor 1 \
    --partitions 1 \
    --topic plain_text

запустить производителя

bin/kafka-console-producer.sh --broker-list localhost:9092 --topic plain_text

запустить 2 потребителей, принадлежащих одному group (выполните одну и ту же команду дважды)

bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 \
    --topic plain_text \
    --formatter kafka.tools.DefaultMessageFormatter \
    --property print.key=true \
    --property print.value=true \
    --property group.id=test_group \

Таким образом, один из двух потребителей должен владеть этим единственным разделом (снова, пожалуйста, исправьте меня, если я ошибаюсь), но все, что я создаю на консоли производителя, видно на обе потребительские консоли. Почему оба потребителя используют сообщения из одного раздела. Есть ли что-то, чего мне не хватает или применяются другие правила для скриптов kafka-console- *.

1 Ответ

5 голосов
/ 20 марта 2020

Если не указано, при каждом запуске kafka-console-consumer будет создаваться отдельный идентификатор группы потребителей, вы можете проверить это, используя:

kafka-consumer-groups.sh --bootstrap-server localhost:9092 --list | grep console-consume
console-consumer-68642
console-consumer-30430

Вы можете добавить --group your_group_name или --consumer-property group.id=your_group_name для специальной регистрации group.id для потребителей вашей консоли

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