API производителя Kafka: значение свойства bootstrap .servers - PullRequest
0 голосов
/ 23 января 2020

Я изучаю API Kafka Producer, и в руководствах они упоминают, что «bootstrap .servers» является обязательным свойством для указания работающих в данный момент брокеров (по значению через запятую). Я сомневался, почему производитель предоставляет весь список брокеров, почему производитель не предоставляет адрес и порт zookeeper, и zookeeper идентифицирует брокера.

Ответы [ 3 ]

1 голос
/ 23 января 2020

Ниже приведены некоторые причины:

  1. Увеличенная задержка : Использование zookeepers для общения с клиентами для операций чтения / записи приведет к дополнительной задержке, поскольку zookeepers будут выступать в качестве посредников между клиентами и брокеры
  2. Повышенные требования к ресурсам : В Kafka брокеры выполняют сложные вычисления для управления данными тем, если зоокейперы выступают в качестве посредников, им приходится иметь дело с большим притоком и оттоком данных что приводит к увеличению требований к ресурсам (ЦП / памяти) для зоопарков.
0 голосов
/ 23 января 2020

Производитель не должен определять всех брокеров. Необходимо предоставить только подмножество, и в дальнейшем клиент получит топологию всего кластера с одного из серверов (активный контроллер).

0 голосов
/ 23 января 2020

Начиная с Kafka 0.9, Zookeeper больше не требуется для клиентских подключений. Свойство называлось zookeeper.connect и служило цели, о которой вы говорите - поиск брокеров

Список брокеров хранится / возвращается сервером Kafka, назначенным как Контроллер, Zookeeper

не возвращает клиентам список * Конечная цель - удалить Zookeeper из архитектуры

...