zookeeper学习系列(一)zookeeper简介

1 zookeeper作用。

一个消息进行网络传输,当网络发生故障时,发送方并不知道接收方是否收到消息。发送方唯一能做的就是再次进行连接,并且进行轮询来确定接收方是否已接收信息。zookeeper不能解决局部故障,但是提供了一些工具集,用来建立安全处理局部故障的分布式应用。

2 zookeeper基本理解。

理解zookeeper的方法是把它视为一种高可用性的文件系统。它没有文件和目录,但是有一个统一概念的节点,叫znode,作为数据(如文件)以及其他znode(如目录)的容器。

#使用zookeeper建立连接时,由于响应时间很快,一般采用等待阻塞的方式(CountDownLatch)

3 zookeeper数据模型

<1>zookeeper维护着一个分级节点树znode,一个znode存储着数据并且有一个相关的ACL。由于zookeeper是为协助而设计的,所以任何一个zode节点上面存储的数据的上限为1MB。

<2>数据访问时原子的,客户端读取znode中的数据只能是全部读、写或者失败,不存在只读,写一部分的情况。

<3>znode是以路径作为标注的。路径必须是绝对的,且唯一  eg:/a/b

<4>znode分为临时性节点和永久性节点,在创建时可设定。临时性节点依附于客户端会话。永久性节点必须显示的由任一一个有权限的客户端进行删除。并且一个临时性的节点不应该有子节点。一个临时性节点即使绑定在客户端的会话上,对其他客户端也是可见的。

<5>watch。当znode改变时,watch使客户端了解相应的信息。watch由zookeeper服务的操作来设置,同时有服务的其他操作来触发。

4 zookeeper运行原理

<1>大多数原则

zookeeper以复合式模式运行在一组叫做ensemble的集群上。zookeeper通过复制来获得高可用性,同时,只要ensemble中的大部分机器都在运作,就可以提供服务。所以我们一般为一个ensemble选择奇数台机器。

它的思想为:保证每一次对znode的修改都能复制到ensemble的大部分机器上,如果ensemble中的小部分机器出故障了,那么至少有一台机器将会恢复到最新状态,其他则保存着副本,直到达到最新的状态。

<2>Zab协议

阶段一:领导者选举

在ensemble中的机器要参与一个选择特殊成员的进程,这个成员叫做领导者,其他机器叫做跟随者。在大部分(或指定额数)的跟随者与他们的领导者同步了状态之后,这个阶段才算完成。

阶段二:原子广播

所有写操作请求被传送到领导者,并且通过广播将更新信息告诉跟随者。当大部分跟随者执行了修改之后,领导者就提交更新操作,客户端将得到更新成功的回应。为原子操作。

阶段三:

如果领导者出故障了,剩下的机器将再次进行领导者选举,并在新领导者被选出前,继续执行任务。如果不久后老的领导者恢复了,它将以跟随者的身份继续执行。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值