Кафка + как добавить дополнительные разделы к существующим XX разделам? - PullRequest
0 голосов
/ 22 марта 2020

это пример того, как создать 10 разделов topi c с именем - test_test

kafka-topics.sh --create --zookeeper zookeeper01:2181 --replication-factor 3 --partitions 10 --topic test_test

Created topic "test_test".


[root@kafka01 kafka-data]# \ls -ltr | grep  test_test
drwxr-xr-x 2 kafka hadoop  4096 Mar 22 16:53 test_test-8
drwxr-xr-x 2 kafka hadoop  4096 Mar 22 16:53 test_test-5
drwxr-xr-x 2 kafka hadoop  4096 Mar 22 16:53 test_test-2
drwxr-xr-x 2 kafka hadoop  4096 Mar 22 16:53 test_test-0
drwxr-xr-x 2 kafka hadoop  4096 Mar 22 16:53 test_test-7
drwxr-xr-x 2 kafka hadoop  4096 Mar 22 16:53 test_test-4
drwxr-xr-x 2 kafka hadoop  4096 Mar 22 16:53 test_test-1
drwxr-xr-x 2 kafka hadoop  4096 Mar 22 16:53 test_test-9
drwxr-xr-x 2 kafka hadoop  4096 Mar 22 16:53 test_test-6
drwxr-xr-x 2 kafka hadoop  4096 Mar 22 16:53 test_test-3

Теперь мы хотим добавить еще 10 разделов к имени topi c - test_test

как добавить дополнительные разделы к существующим 10 разделам?

Ответы [ 2 ]

2 голосов
/ 22 марта 2020

Вы можете запустить эту команду:

./bin/kafka-topics.sh --alter --bootstrap-server localhost:9092 --topic test_test --partitions 20

Кстати, есть две вещи, которые следует учитывать при смене разделов:

  • Уменьшение количества разделов не допускается
  • Если вы добавляете больше разделов в топи c, порядок сообщений на основе ключей не гарантируется

Примечание. Если ваша версия Kafka старше 2.2, вы должны использовать --zookeeper параметр вместо --bootstrap-server

1 голос
/ 23 марта 2020

Кроме того, вы должны принять во внимание, что добавление разделов запускает перебалансировку , что делает всех ваших пользователей этой топи c недоступными в течение определенного периода времени.

rebalance - это процесс переназначения разделов потребителям, это происходит при добавлении новых разделов, добавлении нового потребителя или уходе потребителя (может произойти из-за исключительной ситуации, проблем с сетью или инициирования выход).
Чтобы сохранить согласованность чтения, при перебалансировке группа потребителей полностью прекращает прием сообщений до тех пор, пока не будет выполнено назначение нового раздела.

Этот относительно короткий ответ очень хорошо объясняет баланс.

...