Построение кластера Kafka с использованием только двух серверов - PullRequest
0 голосов
/ 27 февраля 2020

Я планирую построить кластер Kafka с использованием двух серверов и разместить Zookeeper на этих двух серверах.

Вопрос в том, что для запуска Kafka требуется Zookeeper, какая сборка кластера лучше всего подходит для zookeeper для реализации Kafka Cluster на двух серверах?

например. В настоящее время я использую два зоопарка на обоих серверах и по одному Kafka на каждом сервере, и в конфигурации Kafka они указывают на всех зоопарков.

Есть ли лучший способ сделать это?

1 Ответ

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

Прежде всего, вам не нужно настраивать Zookeper и Kafka на одном сервере. Одна из ролей Zookeeper - выбор контроллера. (один из брокеров, который отвечает за поддержание отношений лидер / последователь для всех разделов) Для выборов; Большинство узлов Zookeper должно быть живым. В вашем случае даже один экземпляр Zookeeper не работает, вы не можете выбрать контроллер. Так что нет никакой разницы между одним или двумя зоопарками. Поэтому рекомендуется иметь как минимум 3 узла в кластере Zookeeper. Таким образом вы можете справиться со сбоем одного узла Zookeeper.

В дополнение к этому настоятельно рекомендуется иметь как минимум трех брокеров в вашем кластере Kafka для поддержания как согласованности, так и высокой доступности. ( link1 , link2 )

ОБНОВЛЕНИЕ:

Пока вы ограничены только двумя серверами, тогда вы Вы можете отказаться от высокой доступности, настроив своего брокера, установив min.insync.replicas=2 и указав темы с replication.factor=2. Если HA важнее, чем потеря данных, вы можете использовать конфигурацию брокера min.insync.replicas=1 (по умолчанию) снова с topi c replication.factor=2. При таких обстоятельствах ваши варианты таковы ИМХО. (Наличие одного или двух Zookeepers не важно, как я упоминал выше)

...