zookeeper 集群搭建

来源:互联网 发布:乡镇网络舆情预警机制 编辑:程序博客网 时间:2024/04/30 05:19
今天又来学习了新的一门技术,其实好早就听过zookeeper了,也用过它的分布式锁,但是总结一直没有弄过。。


zooKeeper为高可用的一致性协调框架,自然的ZooKeeper也有着一致性算法的实现,ZooKeeper使用的是ZAB协议作为数据一致性的算法,ZAB(ZooKeeper Atomic Broadcast )全称为:原子消息广播协议;


ZK的ZAB协议(原子广播协议)


适用于ZooKeeper上一种支持崩溃恢复的原子广播协议




(1)崩溃恢复      1.leader崩溃
                   2.选举新的leader(拥有所有服务器中最高编号的ZXID的服务器)
                   3.进行数据同步,将leader服务器中的事务作为基准,所有follower中的事务与leader服务器中的事务进行同步
                   4.抛弃follower中有的而leader中没有的事务 ZXID组成64位的数字,前32位为周期(即leader选举一次+1),后32位为事务操作次数(每增加一次事务+1)
(2)消息广播   
  
                 1.leader接收客户端请求,判断请求是否为事务,若是则将请求转换为事务           proposal,为每个follower建立单独队列,进行FIFO 
                  2.follower接收到事务之后将事务写到本地磁盘后,回复leader(ack)
                 3.leader接收follower返回的ack,超过半数的follwer进行ack,那么leader就会发送提交指令.


一:下面我们来讲讲怎么搭建zk集群吧。。


     1. 一共三个节点(zk服务器集群规模不能小于3个节点),要求服务器系统时间相等。
2.上传zk
        2.1进行解压 tar -zxvf zookeeper.3.4.5.tar.gz
2.2 重命名 mv zookeeper.3.4.5 zookeeper
2.3 修改环境变量: vi /etc/profile
      export ZOOKEEPER_HOME=/usr/local/zookeeper
       export PATH=.:$JAVA_HOME/bin:$ZOOKEEPER_HOME/bin:$PATH
    3.刷新生效      source /etc/profile
    4.到zookeeper下修改配置文件
                   cd /usr/local/zookeeper/conf
  mv zoo_sample.cfg zoo.cfg
5.修改zoo.cfg 文件
                   5.1 vim zoo.cfg
                   5.2 dataDir=/usr/local/zookeeper/data
                   5.3 最后面添加
                      server.0=ip地址1:2888:3888
                   server.1=ip地址2:2888:3888server.2=ip地址3:2888:3888
    6.创建文件
             6.1 mkdir data
                  6.2 在server0,serve1,server2 创建文件vim myid 并填写内容分别为 0,1,2
    7.启动zk    
            路径 /usr/local/zookeeper/bin          
启动  zkServer.sh   start(注意这里3台都要启动) 
       状态  zkServer.sh status  


二:zk环境下操作命令


    zkCli.sh 进行zookeeper客户端
根据命令进行操作
         查找 ls /    
 创建并赋值 create /aa 123
 获取 get /aa
 设值 set /aa 243
 递归删除节点 rmr /path
 删除指定某个节点 delete /path/child
     

   
原创粉丝点击