zookeeper读书笔记1 zookeeper概览

1、zookeeper的数据模型,类似于文件系统,不同的是每个节点除了可以拥有子节点,节点本身还可以绑定数据。节点的术语叫znode。每个znode还保存有数据的版本信息,ACL的版本信息,时间戳信息等。

ZooKeeper's Hierarchical Namespace

2、znode的类型有永久节点和临时节点两种,临时节点在创建它的session消失的时候被删除。临时节点不可以有子节点。这两种节点可以创建为顺序节点。

PERSISTENT(持久的)
EPHEMERAL(暂时的)
PERSISTENT_SEQUENTIAL(持久化顺序编号目录节点)
EPHEMERAL_SEQUENTIAL(暂时化顺序编号目录节点)

3、watchs。客户端可以为一个znode设置一个watch,当这个znode改变的时候,watch会被触发,相应的client会收到通知,然后watch会被删除,想要继续监视znode的变化,client就要重新设置watch。如果client和zookeeper之间的连接断开的时候,client会收到一个本地的通知,做相应的处理。

4、zookeeper的保证

  • 顺序性,同一个client发出的update命令,会按顺序执行
  • 原子性,update要么成功要么失败,没有部分成功或部分失败。
  • 一致性,客户端不管连接哪个zookeeper服务器,看到的数据都是一样的。
  • 及时性,zookeeper集群中每个服务器的数据,保证会在一个时间范围内达到最新的状态。

5、zookeeper的数据操作

  • create : creates a node at a location in the tree

  • delete : deletes a node

  • exists : tests if a node exists at a location

  • get data : reads the data from a node

  • set data : writes data to a node

  • get children : retrieves a list of children of a node

  • sync : waits for data to be propagated

6、zookeeper集群的结构

ZooKeeper Service

客户端读取数据时,flowwer直接从本地内存中取数据。

客户端写数据时,flowwer会把写请求转发到leader,然后leader向每个flowwer发送一个message proposals,flowwer同意message delivery。当leader收到超过n+1个flowwer的同意回复。。。。,

这个过程使用的是zookeeper的原子广播消息协议,这个消息系统还负责选举leader、flowwer从leader同步数据等过程。

因为这个消息系统是原子性的,所以每个写请求要么全部同步到flowwer要么一个flowwer都不会同步,所以每个flowwer的数据都是一致的。

7、zookeeper节点角色

领导者(leader),负责进行投票的发起和决议,更新系统状态
学习者(learner),包括跟随者(follower)和观察者(observer),follower用于接受客户端请求并想客户端返回结果,在选主过程中参与投票
Observer可以接受客户端连接,将写请求转发给leader,但observer不参加投票过程,只同步leader的状态,observer的目的是为了扩展系统,提高读取速度
客户端(client),请求发起方

8、每个zookeeper server的工作状态

每个Server在工作过程中有三种状态:
LOOKING:当前Server不知道leader是谁,正在搜寻
LEADING:当前Server即为选举出来的leader
FOLLOWING:leader已经选举出来,当前Server与之同步

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值