Zookeeper详细介绍

zookeeper定义:是一个分布式的,开放源码的分布式应用程序协调服务。

在zookeeper中分为三种角色

1、leader   领导者

2、follower  跟随者

3、observer 监视follower  (是一个隐藏的)

在zookeeper(恢复模式/leader挂掉了/集群刚启动)节点状态分为四种

1、LOOKING:等待状态,一般出现在没有leader准备选举得得时候

2、LEADING:是已经选举出leader。

3、FOLLOWING:在还没有leader,正在进行选举状态

4、OBSERVERING:是leader和follower都产生后的状态

zookeeper的六大特性

  • 顺序一致性:按照客户端发送请求的顺序更新数据。

  • 原子性:更新要么成功,要么失败,不会出现部分更新。

  • 单一性 :无论客户端连接哪个server,都会看到同一个视图。

  • 可靠性:一旦数据更新成功,将一直保持,直到新的更新。

  • 及时性:客户端会在一个确定的时间内得到最新的数据。

zookeeper的原子广播

通过跟随者的投票确定某一件事能不能做,故zookeeper跟随者最好是<=255个,并且是奇数

1.请求一开始到follower,follower会将请求发送给leader

2.leader将请求下发给所有的follower,follower来判断,并将结果返回给leader

3.将请求写入的文件分发到所有的follower------(最终一致性--及时在写入的过程中有节点连接不上,当恢复的时候还会把节点上写入数据)

zookeeper的zab协议分为两种

         1.广播模式----选举出来leader,对外提供服务

         2.恢复模式----选举leader,就是四大状态

zookeeper的选举机制

首先会通过自身ID(serverid(设置的myid)),ID大的优先,如果ID相同就会通过zxid选举,也是zxid大的优先,并且也遵守少数服从多数的原则

zookeeper的znode

znode是zookeeper自身的文件系统,为了快速的传输,通常它们都很小大约是1M,它会实时将DataNode的数据读取到,并发送到leader,在从leader读取各个znode文件合并后的数据,从而保证了它的实时性。这是也是它的六大特性的体现

znode它有分为四种:1.持久2.临时3.持久顺序4.临时顺序

进入zookeeper客户端的命令是:zkCli.sh -server 192.168.157.123:2181(2181端口号)

通过eclipse创建连接     Zookeeper  zk=newzookeeper("192.168.79.125:2181",timeout,watcher)

这些就是简单的API

  • create - 在树形结构的位置中创建节点

  • delete - 删除一个节点

  • exists - 测试节点在指定位置上是否存在

  • get data - 从节点上读取数据

  • set data - 往节点写入数据

  • get chilren - 检索节点的子节点列表

  • sync - 等待传输数据

zookeeper的监听机制:监听是follower给出一个Watch,它监视leader的状态并将leader的状态告诉会给follower

    

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值