首先要明确一下kafka中topic、分区与broker的关系。
broker:指的是kafka集群中的一个服务器
topic:消息的主题,指同一类别的消息
分区:消息分几块存储在broker上,一块就是一个分区
一个topic分多个分区存放,如下图
一个分区分布到多个broker中
在设置了分区副本时,一个分区中的数据,会在其他broker上备份,副本中的数据和数据顺序都和主分区中的一致。这样保证了数据安全,一个broker宕机后,数据依然可用。
- 一个broker上尽量均匀的分配不同topic的主副本
分区的leader选取是通过ISR(a set of in_sync replicas)