0
使用Curator TreeCache時。我瞭解,無法保證緩存狀態與領導者保持同步,並且可能會錯過創建/更新/刪除事件(Zookeeper missed events on successive changes)。 然而,據我所知,TreeCache將最終保持一致。 問題是:是否有任何定義的最大(保證)時間,其中ZK節點中的更改傳播到TreeCache實例?策展人TreeCache最終一致性
使用Curator TreeCache時。我瞭解,無法保證緩存狀態與領導者保持同步,並且可能會錯過創建/更新/刪除事件(Zookeeper missed events on successive changes)。 然而,據我所知,TreeCache將最終保持一致。 問題是:是否有任何定義的最大(保證)時間,其中ZK節點中的更改傳播到TreeCache實例?策展人TreeCache最終一致性
不,沒有最大時間。注意:這與TreeCache無關,它僅僅是ZooKeeper的工作原理。在內部,所有寫入操作都會通過ZK集合中的當前領導節點。 「追隨者」節點最終與領導者的數據庫同步。在實踐中,這最多隻需幾秒鐘,但當然,這完全取決於數據庫的大小,網絡,飛行中的操作數量等。
更新:請注意,您需要配置你的ZK實例爲syncLimit
,它指定你的合奏的最大數據庫同步。超過syncLimit時,ZooKeeper將超時。看到這裏:https://zookeeper.apache.org/doc/trunk/zookeeperAdmin.html
因此,如果追隨者超過syncLiimit會失敗?在這種情況下,可以說沒有追隨者可以獲得更多的syncLimit。這不是保證嗎? 很明顯,我明白需要額外的時間才能將Follower發送到TreeCache的數據,或者如果客戶端連接到的另一個跟隨者失敗,則需要額外的時間。 – bbb8989
如果同步超出syncLimit,則實例將失敗並將從整體中刪除。 – Randgalt