zookeeper工作原理

在这里插入图片描述
zookeeper是一个分布式协调服务,

  1. 安装zookeeper首先我们要配置zookeeper,我们需要三台或以上虚拟机(单数),
    修改配置文件zookeeper的配置文件conf下的配置文件进行修改
    在这里插入图片描述
    将zoo_sample.cfg复制并更名为zoo.cfg.

    cp zoo_sample.cfg zoo.cfg
    
  2. 修改zoo.cfg文件
    在这里插入图片描述
    将标记蓝色的位置自定义路径,并且创建好目录,在目录下创建myid文件在其中输入1或2或3,取决于下面server.2 这个数字,数字对应的是哪个节点,哪个节点就写几
    在这里插入图片描述

    server.1=node02:2888:3888
    server.2=node03:2888:3888
    server.3=node04:2888:3888
    

    在最后 加入集群的各个节点的信息
    2888端口:是对外提供服务的端口号
    3888端口:当leader挂掉之后,重新选择leader的时候提供对外通信

  3. 配置环境变量
    在这里插入图片描述

    export ZOOKERPER_HOME=/opt/software/zookeeper-3.4.6
    export PATH=$PATH:$ZOOKERPER_HOME/bin
    

    配置完成后记得,让配置文件生效

    source /etc/profile
    

Zookeeper工作机制

  1. 选举机制leader是根据选举产生的,每个follower进行投票,最后投票多的做为leader
    采用的是逻辑时钟的方式进行选举
  2. 原子广播
    1. 当有一个请求发送到集群时,由随机一个follower进行接收
    2. flowwer将请求转发给leader
    3. leader将请求下发给各个flowwer,进行投票
    4. follower将自己的想法发返回给leader
    少数服从多数
    过半原则:我们的zookeeper结点最好是单数,这样减少重复投票
  3. zab协议
    广播模式:已经选举出来的leader,开始对外提供服务
    恢复模式:还没有选好leader(集群刚刚启动时,leader死了新的还没有上来)
    1. looking --观望状态
    2. following --跟随状态 follower出现了
    3. leading --继承人(准备替补leader) leader
    4. observing —这个监视leader的家伙出现了 observer
  4. 角色
    1. leader 领导者,发起一个请求,让follower进行投票
    2. follower 跟随者,响应leader的请求并发起投票
    3. observer 监视者 ,监视着leader,并将leader的状态发送给follower

Zookeeper特点

  1. 最终一致性:为客户端展示同一个视图,这是Zookeeper里面一个非常重要的功能,不管在哪个节点,做包含的内容完全一致。
  2. 可靠性:如果消息被一台服务器接受,那么他会被所有的服务器接受。
  3. 实时性:Zookeeper不能保证两个客户端能同时得到刚更新的数据,如果需要最新数据,应该在读数据之前调用sybc()接口。
  4. 独立性:各个Client之间互不干预。
  5. 原子性:更新只能成功或者失败,没有运行一半这一说。
  6. 顺序性:所有Server,同一消息发布顺序一致。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值