Должны ли мы запустить узел Kafka с 3 репликами или 3 узла Kafka с 1 репликой? - PullRequest
0 голосов
/ 28 апреля 2020

Я не понимаю разницы между запуском 1 узла Kafka с 3 репликами и 3 узлами Kafka с 1 репликой.

Мы поддерживаем наш собственный кластер Kubernetes, где мы хотим запустить кластер Kafka. Мы используем диаграмму Bitnami Helm .

Мы можем установить:

  1. ... 3 разных сервиса Kafka с 1 репликой, каждая из которых имеет свой собственный URL (например, localhost: 9092, localhost: 9093 и localhost: 9094).
  2. ... 1 Служба Kafka работает в 3-х репликах (для всех реплик есть только 1 URL-адрес localhost: 9092).

Есть ли разница в способе синхронизации и лучший способ для конфигурации?

Ответы [ 2 ]

1 голос
/ 28 апреля 2020

Чтобы обеспечить высокую доступность и использовать параллелизм Kafka для нескольких потребителей, вам нужно увеличить масштаб, и я бы порекомендовал 3 сервера.
При установке нескольких брокеров сообщения / разделы будут распределяться между различными брокерами для одной и той же топики c, поэтому группа потребителей может получать сообщения от разных брокеров с высоким параллелизмом.

Кроме того, обратите внимание, что репликации помогают вам только для обеспечения высокой доступности, поэтому реплика / разделы будут играть ведущую роль в случае сбоя сервера.
Для кластера из 3 узлов я бы рекомендовал начать с 2 реплик, поэтому один сбой сервера не приведет к потере сообщений вообще; если доступность очень важна для вас или вы не доверяете своему оборудованию, go с 3 репликами, таким образом вы можете пережить две остановки одновременно, но скомпрометировать больше дискового пространства на серверах.

1 голос
/ 28 апреля 2020

1 узел Kafka с 3 репликами находится на одной машине. Данные будут храниться на том же сервере. Репликация на том же сервере Kafka предназначена для обеспечения безопасности во избежание повреждения данных.

Примерно 3 кафки с 1 репликой - другой подход. Например, если один из ваших серверов вышел из строя, другой Кафка может занять лидирующую позицию для указания c topi c, если все данные реплицированы из одной и той же топи c. Это одна из красавиц Кафки. Если вы сконфигурируете правильно, Zookeeper сможет выполнить замену, и ваш сервис не обработает sh.

Одна из лучших практик, которые вы можете использовать в производстве, - это создать двух зоокейперов (выборщиков-лидеров) и разместить 3 или 4 кафки на разных машинах и каждый кафку с коэффициентом репликации 3. Это создаст строгую согласованность в ваших данных, и, если один или два сервера не будут работать, ваша kafka будет работать определенным безопасным способом.

Это случилось со мной. 4 кафки, 2 пуха и все еще работает отлично. Кроме того, некоторые детали должны быть внесены в конфигурации. Предлагаем вам узнать о Stephane Maarek на YT .

...