kafka + 如何在现有的 XX 分区上添加额外的分区?
kafka + how to add additional partitions to the existing XX partitions?
这是如何使用名称创建新的 10 个主题分区的示例 - 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 个分区 - test_test
如何在现有的 10 个分区中添加额外的分区?
您可以运行这个命令:
./bin/kafka-topics.sh --alter --bootstrap-server localhost:9092 --topic test_test --partitions 20
顺便说一下,关于更改分区有两件事需要考虑:
- 不允许减少分区数
- 如果您向主题添加更多分区,则无法保证消息的基于键的排序
注意:如果您的 Kafka 版本早于 2.2,则必须使用 --zookeeper
参数而不是 --bootstrap-server
此外,您应该考虑到 添加分区会触发 重新平衡,这会使您的所有此主题的使用者在一段时间内不可用。
rebalance是重新分配分区给消费者的过程,发生在添加新分区、添加新消费者或消费者离开时(可能由于异常而发生、网络问题或启动退出)。
为了保持读取一致性,在重新平衡期间,消费者组完全停止接收消息,直到发生新的分区分配。
这篇相对较短的 很好地解释了再平衡。
这是如何使用名称创建新的 10 个主题分区的示例 - 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 个分区 - test_test
如何在现有的 10 个分区中添加额外的分区?
您可以运行这个命令:
./bin/kafka-topics.sh --alter --bootstrap-server localhost:9092 --topic test_test --partitions 20
顺便说一下,关于更改分区有两件事需要考虑:
- 不允许减少分区数
- 如果您向主题添加更多分区,则无法保证消息的基于键的排序
注意:如果您的 Kafka 版本早于 2.2,则必须使用 --zookeeper
参数而不是 --bootstrap-server
此外,您应该考虑到 添加分区会触发 重新平衡,这会使您的所有此主题的使用者在一段时间内不可用。
rebalance是重新分配分区给消费者的过程,发生在添加新分区、添加新消费者或消费者离开时(可能由于异常而发生、网络问题或启动退出)。
为了保持读取一致性,在重新平衡期间,消费者组完全停止接收消息,直到发生新的分区分配。
这篇相对较短的