添加一个 topic

1
2
3
4
5
6
bin/kafka-topics.sh
--create //操作类型
--zookeeper localhost:2181 //kafka依赖的zookeeper地址
--replication-factor 2//副本因子
--partitions 1 //分区数量
--topic test //topic 名称

分区和副本的分配方式如下图:

可能通过上图,你云里雾里,既然知道命令,我们就通过命令来看看,到底如何分配。

1
2
3
4
bin/kafka-topics.sh --create --zookeeper localhost:2181
--replication-factor 2
--partitions 5
--topic test-part

通过命令可以看出 topic:test-part 指定了 5个分区,拷贝因子为2(代表只有一个副本),通过 执行命令 查看 topic:test-part 信息如下:

通过上边的描述信息,可以得到如下图分配方式 -L:Leader -C:Replicas(副本)

然后,我又执行了如下命令:

1
2
3
4
bin/kafka-topics.sh --create --zookeeper localhost:2181
--replication-factor 2
--partitions 6
--topic test-part-1

得到分配图如下:

通过以上两次创建topic对比

第一次(5分区,2复制因子) test-part 第二次(6分区,2复制因子) test-part-1
分区0所在broker 0 3
副本与leader所在的关系 leader所在broker.id + 2,即副本所在broker.id leader所在broker.id + 2,即副本所在broker.id

参考文章

https://www.cnblogs.com/qxynotebook/p/11235275.html

掘金小册-图解 Kafka 之实战指南