Сомнения в настройке кластера Kafka - PullRequest
0 голосов
/ 07 декабря 2018

У меня есть сценарий использования. Я хочу изначально настроить кластер Kafka при запуске. У меня есть 1 брокер Kafka (A) и 1 узел Zookeeper.Ниже приведены мои запросы:

  • При добавлении нового Kafka Broker (B) в кластер.Будут ли все данные, представленные на брокере А, распространяться автоматически?Если не то, что мне нужно сделать, распространять данные.

  • Не будем предполагать, что как-то так!Решено, мои данные распределяются на обоих брокеров.Теперь из-за проблем с обслуживанием я хочу отключить сервер B.

    • Как передать данные брокера B уже существующему брокеру A или новому брокеру C.
  • Как увеличить коэффициент репликации моих брокеров во время выполнения

  • Как изменить IP-адреса Zookeeper, присутствующие в Kafka Broker Config во время выполнения безперезапуск Kafka?

  • Как динамически изменить конфигурацию Kafka во время выполнения

Относительно клиента Kafka:

  • Нужно ли указывать всеКафка брокер IP к кафкеКлиент для подключения?И каждый раз, когда брокер добавляется или удаляется, нужно ли мне добавлять или удалять мой IP-адрес в строке подключения клиента Kafka.Как всегда будет требоваться перезагрузка моего производителя и потребителей?

Примечание:

Kafka Version: 2.0.0
Zookeeper: 3.4.9
Broker Size : (2 core, 8 GB RAM) [4GB for Kafka and 4 GB for OS]

Ответы [ 2 ]

0 голосов
/ 07 декабря 2018

Вот краткие ответы:

  • Да, данные, представленные на брокере A, также будут распространяться в брокере Kafka B

  • Вы можете настроить трех брокеров A, B и C, так что если A потерпит неудачу, B и C потерпят неудачу, а если B потерпит неудачу, то C вступит во владение и так далее.

  • Вы можете увеличить коэффициент репликации своего брокера, создав файл increment-replication-factor.json и поместить в него следующее содержимое:

    {"version": 1, "разделы": [{"topic": "сигналы", "раздел": 0, "реплики": [0,1,2]}, {"topic": "сигналы", "раздел": 1, "реплики ": [0,1,2]}, {" topic ":" сигналов "," раздел ": 2," replicas ": [0,1,2]}]}

Чтобы увеличить количество реплик для данной темы, вам необходимо:

Указать дополнительные разделы для существующей темы с помощью команды ниже (скажем, увеличение с 2 до 3)

bin/kafktopics.sh --zookeeper localhost:2181 --alter --topic topic-to-increase --partitions 3

Существует файл zoo.cfg, в который можно добавить IP-адрес и конфигурацию, связанные с ZooKeeper.

0 голосов
/ 07 декабря 2018

Чтобы запустить тему от одного брокера kafka, вам нужно будет установить коэффициент репликации 1 при создании этой темы (явно или неявно через default.replication.factor).Это означает, что разделы темы будут на одном посреднике, даже после увеличения числа посредников.

Вам придется увеличить количество реплик , как описано в документации по kafka.Вам также следует обратить внимание, что во внутренней теме __consumer_offsets достаточно реплик .Это запустит процесс репликации, и в конечном итоге исходный брокер будет лидером каждого тематического раздела, а другой брокер будет подписчиком и полностью пойман.Вы можете использовать kafka-topics.sh --describe, чтобы убедиться, что в каждом разделе есть оба брокера в ISR (синхронные реплики).

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...