kafka中topic和副本的关系图简介
Borker必须唯一(就相当于机器的ID)
-
创建一个topic有三个分区,三个副本, leader用三角形标注,0号分区在第一台机器上是leaser其他机器是副本,同理其他分区一样,有一个leader其他机器上存有他的副本,(有9个分区),
-
zookeeper在选举的时候会将活跃分区分散在多个broker里面,这样会把读写的压力分摊到多个机器上,因为以后负责读写的是活跃分区
-
生产者可以把数据写道固定的分区,也可以把数据写道多个活跃分区,并且多个生产者可以向同一个活跃分区中写数据(生产者可以固定的将数据写道某个leader分区中,也可以轮循写入)
-
消费者(consumer)同一个消费者组里面的consumer只能同时消费自己的分区(一个消费组中的多个消费者不能同时消费一个leader分区,但是一个消费者可以消费多个leader分区)
5)如果有四个消费者,三个分区,最后一个消费者不用,不同消费者组直接的消费者没有任何影响,如果消费者的数量大于分区的数量,会由消费者的消费不到数据
6)副本的数量不能超过现有的broker的数量,分区的数量可以超过broker的数量,一个broker上也可以有多个leader分区,但肯定不是同一个分区编号的分区