2017-01-29 7 views
0

Bei Verwendung von Kurator TreeCache. Ich verstehe, dass es keine Garantie dafür gibt, dass der Cache-Status synchron mit dem Leader bleibt und das Erstellen/Aktualisieren/Löschen von Events verpasst werden kann (Zookeeper missed events on successive changes). Von was ich aber verstehe - TreeCache wird schließlich konsistent sein. Frage ist: Gibt es eine maximale (garantierte) Zeit, in der die Änderung im ZK-Knoten an die TreeCache-Instanz weitergegeben wird?Kurator TreeCache eventuelle Konsistenz

Antwort

0

Nein, es gibt keine maximale Zeit. Hinweis: Dies hat nichts mit TreeCache zu tun, es funktioniert nur wie ZooKeeper funktioniert. Intern durchlaufen alle Schreiboperationen den aktuellen Führungsknoten in Ihrem ZK-Ensemble. Die "Follower" -Knoten synchronisieren sich schließlich mit der Datenbank des Anführers. In der Praxis ist dies höchstens eine Frage von Sekunden, aber natürlich hängt dies ganz von der Größe Ihrer Datenbank, Ihrem Netzwerk, der Anzahl der Flugoperationen usw. ab.

Update: Beachten Sie, dass Sie konfigurieren Ihre ZK-Instanzen mit syncLimit, die die maximale Db-Synchronisation für Ihr Ensemble angibt. ZooKeeper wird Zeitüberschreitung, wenn SyncLimit überschritten wird. Siehe hier: https://zookeeper.apache.org/doc/trunk/zookeeperAdmin.html

+0

Also der Nachfolger wird fehlschlagen, wenn es syncLiimit überschreitet? In diesem Fall ist es in Ordnung zu sagen, dass kein Follower mehr als SyncLimit bekommen kann. Ist das nicht eine Garantie? Offensichtlich verstehe ich, dass zusätzliche Zeit erforderlich ist, um Daten vom Follower zu TreeCache zu senden oder um sich mit einem anderen Follower zu verbinden, wenn der Client, mit dem der Client verbunden ist, ausfällt. – bbb8989

+0

Wenn eine Synchronisierung syncLimit überschreitet, schlägt die Instanz fehl und wird aus dem Ensemble gelöscht. – Randgalt

Verwandte Themen