首页 笔记 图片 查字 
所属分类:Kafka
浏览:43
内容:

AR(Assigned Replicas)分配的副本:
一个分区里面所有的副本,不区分leader和follower。

ISR(In-Sync Replicas)同步的副本:
能够和leader保持同步的follower+leader本身组成的集合。

OSR(Out-Sync Replicas)未同步的副本:
不能和leader保持同步的follower集合。

它们之间的关系:AR = ISR + OSR

某个topic的replication-factor为N,则这个topic下的每个分区下都有一个leader和(N-1)个follower。
每个follower的数据都是从leader同步过来的,是follower主动拉取leader的数据。
follewer只是数据的副本,只能保证数据的可恢复性。

ISR机制:
ISR(In-Sync Replicas)是一个副本列表,存储的是和leader数据一致的副本。
确定一个副本是否能在ISR列表中,需要两个条件:
follower和leader的同步时间间隔,超过这个时间间隔,就将它从ISR集合中删除掉,进入OSR。
follower和leader的同步数据条数差,超过这个数差,就将它从ISR集合中删除掉,进入OSR。
目前kafka使用第一个条件作为判断依据。第二个条件容易形成无限循环。

OSR中的follower重新进入ISR的条件:
当follower重新同步了leader的数据,就会重新进入到ISR集合中。