zookeeper如何保证单一系统镜像
创始人
2024-01-26 08:46:09
0

官方文档描述

文档地址:https://zookeeper.apache.org/doc/current/zookeeperOver.html

ZooKeeper 非常快速且非常简单。但是,由于它的目标是成为构建更复杂服务(例如同步)的基础,因此它提供了一组保证。这些是:

  • 顺序一致性——来自客户端的更新将按照它们发送的顺序应用。
  • 原子性——更新要么成功要么失败。没有部分结果。
  • 单一系统映像——无论连接到哪个服务器,客户端都将看到相同的服务视图。即,即使客户端故障转移到具有相同会话的不同服务器,客户端也永远不会看到系统的旧视图。
  • 可靠性——应用更新后,它将一直持续到客户端覆盖更新为止。
  • 及时性——系统的客户视图保证在特定时间范围内是最新的。

英文单一系统映像描述

Single System Image - A client will see the same view of the service regardless of the server that it connects to. i.e., a client will never see an older view of the system even if the client fails over to a different server with the same session.

思考

很多人会认为这句话的含义是:

  1. 当客户端A将资源R的值进行了修改,R1->R2->R3的情况下,客户端B只要请求是在A客户端收到R值修改成功的响应后到达的ZooKeeper服务器,那么客户端B看到的R值必然是R3.

我的疑惑是

假如有5个节点的集群,leader+4个follower。 leader写入数据为R1->R2->R3,因为ZAB协议并不是强一致性,follower1、follower2的数据为R1->R2->R3(保证写入成功),但是follower3是R1->R2,follower4是R1.此时客户端和follower3有连接,读取到的数据为R2;

  1. 但写入方认为R3已经写入成功,这不就是最终一致了。
  2. 客户端和follower3因网络原因断开连接,连接到了follower4会不会读到R1。如果读到,就违反了顺序一致性

针对这两个问题查了下资料

  • https://stackoverflow.com/questions/40797443/how-zookeeper-guarantees-single-system-image
  • https://github.com/apache/zookeeper/pull/931

问题1: 一致性问题

zk保证的是
及时性——系统的客户视图保证在特定时间范围内是最新的。
时间范围可以通过配置修改:syncLimit tickTime 来实现

问题3:顺序性

zk保证的是,如何客户端读取到R2,就可能读取到R2之前的值;实现方式是: 客户端保留了一个 zxid,如果它从较新的服务器读取了一些数据,它将不会连接到较旧的 follower

看官方文档的另一个收获是

3.6.0 中的新增功能:客户端还可以在 znode 上设置永久的递归监​​视,这些监视在触发时不会被删除,并且会递归地触发已注册 znode 以及任何子 znode 上的更改。

New in 3.6.0: Clients can also set permanent, recursive watches on a znode that are not removed when triggered and that trigger for changes on the registered znode as well as any children znodes recursively.

可以不用触发一次,添加一次监听了

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
一帆风顺二龙腾飞三阳开泰祝福语... 本篇文章极速百科给大家谈谈一帆风顺二龙腾飞三阳开泰祝福语,以及一帆风顺二龙腾飞三阳开泰祝福语结婚对应...
美团联名卡审核成功待激活(美团... 今天百科达人给各位分享美团联名卡审核成功待激活的知识,其中也会对美团联名卡审核未通过进行解释,如果能...