Curator TreeCache 最终一致性
Curator TreeCache eventual consistency
使用 Curator TreeCache 时。我知道不能保证缓存状态与领导者保持同步,并且 create/update/delete 事件可能会丢失 (Zookeeper missed events on successive changes)。
然而,据我了解 - TreeCache 最终将保持一致。
问题是:ZK 节点中的更改传播到 TreeCache 实例时是否定义了最大(保证)时间?
不,没有最长时间限制。注意:这与 TreeCache 无关,它只是 ZooKeeper 的工作方式。在内部,所有写操作都通过 ZK 集合体中的当前领导节点。 "follower" 个节点最终与领导者的数据库同步。实际上,这最多只是几秒钟的事情,当然,这完全取决于您的数据库大小、您的网络、运行中的操作数量等。
更新:请注意,您使用 syncLimit
配置 ZK 实例,它指定了您的整体的最大数据库同步。当超过 syncLimit 时,ZooKeeper 将超时。看这里:https://zookeeper.apache.org/doc/trunk/zookeeperAdmin.html
使用 Curator TreeCache 时。我知道不能保证缓存状态与领导者保持同步,并且 create/update/delete 事件可能会丢失 (Zookeeper missed events on successive changes)。 然而,据我了解 - TreeCache 最终将保持一致。 问题是:ZK 节点中的更改传播到 TreeCache 实例时是否定义了最大(保证)时间?
不,没有最长时间限制。注意:这与 TreeCache 无关,它只是 ZooKeeper 的工作方式。在内部,所有写操作都通过 ZK 集合体中的当前领导节点。 "follower" 个节点最终与领导者的数据库同步。实际上,这最多只是几秒钟的事情,当然,这完全取决于您的数据库大小、您的网络、运行中的操作数量等。
更新:请注意,您使用 syncLimit
配置 ZK 实例,它指定了您的整体的最大数据库同步。当超过 syncLimit 时,ZooKeeper 将超时。看这里:https://zookeeper.apache.org/doc/trunk/zookeeperAdmin.html