LINUX.ORG.RU

Вопрос по Kafka кластеризации.

 


0

2

Доброго всем времени суток, хотелось бы спросить у знающих и людей, вопрос о кластеризации Кафки, даже не кластеризации а репликации. Как я понял из описания, на сервере можно поднять один zookeeper и кажем 2-3 инстанса (брокера) самой кафки, далее указать глубину репликации, и я так понимаю если я создаю топик и указываю делить данные между брокерами то будет примерно следующее:

Topic:oods-raw	PartitionCount:16	ReplicationFactor:2	Configs:
	Topic: oods-raw	Partition: 0	Leader: 3	Replicas: 3,1	Isr: 3,1
	Topic: oods-raw	Partition: 1	Leader: 1	Replicas: 1,2	Isr: 1,2
	Topic: oods-raw	Partition: 2	Leader: 2	Replicas: 2,3	Isr: 2,3

Вопрос в следующем:

Если я подниму брокеры на другом физическом сервере и передам это в параметры всех остальных нод, будт ли топики писаться туда идентично? Или если есть Replicas: 2,3 то данные попадут только на 2 и 3 брокер?

Возможно ли писать на три физически разных сервера одинаковые данные? Не в каждый из них, а в один записали и на остальные 2 оно разошлось само?



Последнее исправление: yakunin (всего исправлений: 1)

можно поднять один zookeeper

Можно, но если он умрёт, то ляжет всё. Лучше поднять по зукиперу на каждой машине, он не так много ест.

Или если есть Replicas: 2,3 то данные попадут только на 2 и 3 брокер?

Это. Двух реплик достаточно, чтобы при недоступности одной из нод всё продолжало работать.

Возможно ли писать на три физически разных сервера одинаковые данные? Не в каждый из них, а в один записали и на остальные 2 оно разошлось само?

Возможно, можешь настроить replication factor равным числу серверов.

anonymous
()

Если честно, то не уверен что понял твой вопрос. Ты спрашиваешь будет ли различие между конфигурациями когда все 3 брокера на одной машине и когда на разных?

urxvt ★★★★★
()
Ответ на: комментарий от anonymous

Спасибо! За replication factor понятно. Соответственно, если я все правильно понимаю, я поднимаю 3 зукипера на 3х разных серверах, далее на каждом сервере поднимаю по одному брокеру и во всех этих трех брокерах прописываю:

На первой:
zookeeper.connect= 1.1.1.1:2181
На второй:
zookeeper.connect= 1.1.1.2:2181

Далее:

kafka-topics.sh --create --zookeeper 1.1.1.1:2181, 1.1.1.2:2181, 1.1.1.3:2181  --replication-factor 2 (или 3) --partitions 1 --topic TestingTopic

И данные пишуться на все три сразу?

yakunin
() автор топика
Ответ на: комментарий от yakunin

На всех брокерах:

zookeeper.connect=1.1.1.1:2181,1.1.1.2:2181,1.1.1.3:2181

Они сами разберутся, кто из них главный.

--partitions 1

Лучше побольше - например, 24. Места занимает столько же, но позволяет параллельно читать-писать нескольким клентам. 24 - потому что делится на 2, 3, 4, 6, 8 и т. д.

anonymous
()
Ответ на: комментарий от anonymous

Понял вас, спасибо! Вопрос закрыт.

yakunin
() автор топика

zookeeper'ы лучше отдельно держать, не меньше трех, можно на небольших ВМ (типа 2cpu/4ram, на разных физических гипервизорах) но главное, чтобы между брокерами и зукиперами была хорошая сеть в плане латентности, а между брокерами - еще и в плане пропускной способности.

Засрать все свои 20 гигабит одному брокеру во время ребаланса (неизбежная процедура при добавлении и удалении брокеров, сам кластер баланситься не умеет) как два пальца об асфальт.

Учитывая все вышенаписанное, если ты просто добавишь брокер, зукипер его увидит, но данные на него попадут только после ребаланса кластера.

pekmop1024 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.