一、broker选举(也叫控制器选举)
Kafka架构里有生产者,消费者和broker,第一个启动的broker会去zookeeper里注册,成为leader,而后面去zookeeper注册的broker则会收到异常,只能注册watch对象,对leader进行监控,如果leader broker挂了,其他第一个注册的broker成为新的leader。并更新ISR副本队列。
二、分区副本选举
每一个partition都有多个副本,一般是2-3个副本,
- 首领副本(leader):也就是leader主副本,每个分区都有一个首领副本,为了保证数据一致性,所有的生产者与消费者的请求都会经过该副本来处理。
- 跟随者副本(follower):除了首领副本外的其他所有副本都是跟随者副本,跟随者副本不处理来自客户端的任何请求,只负责从首领副本同步数据,保证与首领保持一致。如果首领副本发生崩溃,就会从这其中选举出一个leader。
三、消费者组选leader
在kafka的消费端,会有一个消费者协调器以及消费组,组协调器GroupCoordinator需要为消费组内的消费者选举出一个消费组的leader,如果消费组内还没有leader,那么第一个加入消费组的消费者即为消费组的leader。
四、ISR和OSR
分区中的所有副本统称为 AR (Assigned Replicas)。所有与leader副本保持一定程度同步的副本(包括leader副本在内&#