ISR

ISR,In-Sync Replicas 同步副本拿到意思

在每个kafka中,每个topic partition可以有多个replica。ISR是与Leader replica保持同步的follower

replica集合

可以说ISR机制就是确保数据的可靠性和一致性的

当消息被sender线程发送后,它会先被写入Leader副本,然后再由follower主动轮询Leader同步消息

只有ISR中的所有副本成功接收到并确认了消息后,主副本才会认为消息已经成功提交

ISR列表维护

什么时候follower会被移除出ISR列表

replica.lag.max.messages

在0.9x之前是,表示follower落后Leader这个数就会被移除

这个就有大问题,如果高并发场景,Leader一下子收到几万条消息,那么所有follower都会被驱逐

在0.9x后,

新增了replica.lag.max.ms

表示follower的LEO一直落后Leader超过这个replica.lag.max.ms时间,才会被移除出境