Обзор архитектуры Kafka Topi c, Broker, ZooKeeper - PullRequest
0 голосов
/ 10 февраля 2020

Я прочитал кучу статей, касающихся архитектуры Кафки, но я все еще новичок в этом, и когда дело дошло до кодирования, возникла путаница, если я все понял правильно.

Насколько я понимаю, сервер, брокер и узел Kafka являются синонимами. В кластере Kafka может быть несколько брокеров. Существует топика Кафки c (T1), состоящая из нескольких разделов (P1, P2 ..). Эти разделы могут быть реплицированы между брокерами (B1, B2 ..). B1 может быть лидером для P1, B2 для P2 и так далее. Говорим ли мы, что для брокера или кластера определен topi c T1, и если мы рассматриваем topi c как набор разделов, можем ли мы сказать «topi c replicas»?

От официального Kafka документация:

bootstrap .servers: список пар хост / порт, используемых для установления начального соединения с кластером Kafka. Клиент будет использовать все серверы независимо от того, какие серверы указаны здесь для начальной загрузки - этот список влияет только на исходные хосты, используемые для обнаружения полного набора серверов. Этот список должен иметь вид host1: port1, host2: port2, .... Поскольку эти серверы просто используются для начального подключения, чтобы обнаружить полное членство в кластере (которое может изменяться динамически), этот список не должен содержать полный набор серверов (хотя вам может потребоваться более одного, если сервер не работает)

В этом случае ZooKeeper автоматически рассылает сообщение лидеру при выполнении bin/kafka-console-producer.sh --broker-list host1:port1,host2:port2 --topic test? (Я полагаю, что где-то я читал, что производитель должен читать идентификатор брокера из ZooKeeper, но не будет ли это здесь ненужным?) Это равнозначно публикации с использованием bin/kafka-console-producer.sh --zookeeper host1:z_port1,host2:z_port2 --topic test? Как я должен в основном понимать bin/kafka-configs.sh --zookeeper host1:z_port1,host2:z_port2? У нас есть только один экземпляр Zookeeper?

1 Ответ

0 голосов
/ 11 февраля 2020

Говорим ли мы, что для брокера или кластера определен topi c T1, и если мы рассматриваем topi c как набор разделов, можем ли мы сказать 'topi c replicas'?

1) Кластер. 2) Разделы реплицируются индивидуально для нескольких посредников, часто больше, чем сам фактор репликации. Более правильным термином будет «in syn c replicas (ISR)»

. ZooKeeper автоматически рассылает сообщение лидеру при выполнении

Zookeeper не выполняет нет Ваш клиент связывается с контроллером брокера, а затем получает всех брокеров в кластере, который также возвращает метаданные о том, какой брокер является лидером для тех топических c -разделений. Затем клиент индивидуально подключается и выдает каждому ведущему брокеру вычисленные разделы

. Это равно публикации

Производство *, да.

У нас есть только один экземпляр Zookeeper?

Один Zookeeper cluster может управлять несколькими кластерами Kafka с помощью функции, называемой chroot, каталогом root в znodes Zookeeper, который содержит информацию об управляемой службе.

Также команда kafka-topics теперь может использовать --bootstrap-server, а не --zookeeper

...