Кафка - возможно ли изменить размер кластера, сохраняя прозрачность изменений для производителей и потребителей? - PullRequest
0 голосов
/ 07 января 2019

Я исследую Kafka, чтобы оценить его пригодность для нашего варианта использования. Не могли бы вы помочь мне понять, насколько гибок Kafka для изменения размера существующего кластера?

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

Ответы [ 2 ]

0 голосов
/ 08 января 2019

Добавление серверов в кластер Kafka легко, просто назначьте им уникальный ID брокера и запустите Kafka на ваших новых серверах. Однако эти новые серверам не будут автоматически назначаться какие-либо разделы данных, поэтому если разделы не перемещены к ним, они не будут делать никакой работы, пока новые темы созданы. Так обычно, когда вы добавляете машины к вашему кластера вы хотите перенести некоторые существующие данные на эти машины.

См. здесь Кафка поддерживает:

  • Расширение вашего кластера
  • Автоматическая миграция данных на новые машины
  • Назначение и миграция пользовательских разделов
0 голосов
/ 08 января 2019

Да, вы можете увеличить количество разделов темы с помощью командной строки или AdminClient без перезапуска процессов кластера.

Пример:

bin/kafka-topics.sh --zookeeper zk_host:port --alter --topic testtopic1 
   --partitions 20 

Обратите внимание, что изменение разделов не меняет разбиение существующих тем.

Кафка позволяет только увеличивать разделы, но вы не можете уменьшить разделы. Если в этом случае вам нужно уменьшить количество разделов, вам нужно удалить и заново создать тему.

На ваш вопрос " что происходит с производителем / потребителем, ведут себя для вновь добавленных разделов "

Кафка имеет свойство metadata.max.age.ms для производителей и потребителей, по умолчанию 300000.

metadata.max.age.ms: промежуток времени в миллисекундах, после которого мы принудительно обновляем метаданные, даже если мы не видели каких-либо изменений в лидерстве разделов для проактивного обнаружения каких-либо новых брокеров или разделов .

После заданного значения метаданные обновляются, и все новые добавленные разделы будут обнаруживаться производителями / потребителями.

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