1.概念
1.LEO(last end offset)
當(dāng)前replica存的當(dāng)前最大offset的下一個值
2.HW(high watermark) :
小于 HW值得offset所對應(yīng)的消息被認(rèn)為是"已提交"或"已備份"的消息,才對消費(fèi)者可見。
假設(shè)ISR中目前有1個leader,3個follower晃危。
1、leader接收一個消息老客,自己保存后僚饭,馬上發(fā)送3個請求通知3個follower趕緊保存
2、等待3個follower響應(yīng)保存成功
3胧砰、響應(yīng)producer鳍鸵,消息提交成功
你是這么想的么?反正當(dāng)時我是這么想的尉间。
實(shí)際上不是的偿乖,這個同步是follower主動去請求leader進(jìn)行同步的。
因?yàn)槭敲總€follower情況不一樣哲嘲,所以才會出現(xiàn)LEO和HW的概念贪薪。
簡言之,木桶原理
replica里存了多少數(shù)據(jù)和consumer能消費(fèi)多少數(shù)據(jù)眠副,不是一回事画切。
所謂木桶原理,就是把每個replica當(dāng)作一個木桶的板子囱怕,桶能裝多少水只取決于最短的那塊板子霍弹。
這就是也有些人把HW叫成 高水位 的原因。
而 HW 的概念娃弓,也契合前文提到的【完全同步】典格,HW之前的所有消息,在ISR中是完全同步的忘闻。
LEO、HW流程
1.數(shù)據(jù)寫到leader的partition上 2.leader更新自己的leo齐佳, 3.follower帶上自己的leo私恬, 4.leader更新follower列表每個follower對應(yīng)的leo, 5.嘗試更新ISR 6.取follower的leo列表最小值做hw并嘗試更新炼吴, 7.將hw返回follower本鸣, 8.follower更新自己的leo 9.follower取自己的hw和leader返回的hw做對比取最小值更新。
出自鏈接:https://blog.csdn.net/daima_caigou/article/details/109390705