zoukankan      html  css  js  c++  java
  • Zookeeper搭建集群及协同

    Zookeeper搭建集群及协同

    协同的实现

    首先启动一个zkCli客户端(zkCLi-1),创建一个workers节点。

    create /workers

    使用ls监控当前节点。

    ls -w /workers
    []

    当前/workers中没有子节点。

    新开一个zkCli客户端(zkCli-2),在/workers中创建一个新节点。

    create -e /workers/w1 "w1:2220"

    此时zkCli-1中收到通知。

    WATCHER::
    
    WatchedEvent state:SyncConnected type:NodeChildrenChanged path:/workers
    

    使用ls在zkCli-1中查看节点信息。

    ls -w /workers

    返回

    [w1]

    此时在zkCli-2中执行quit退出。

    zkCli-1中再次用ls查看。

    []

    这样一个简单的协同服务就已经实现了。

    集群搭建

    在我们上一篇说的什么是挖矿?一文中,最后留下了一个问题,DPoS算法,这个类似于选举的算法。

    Zookeeper集群中,也是使用了一种类似的选举算法,感兴趣的可以去了解一下Paxos算法的论文。

    http://lamport.azurewebsites.net/pubs/paxos-simple.pdf

    在Zookeeper集群中被选举出来的节点叫做leader,其他节点叫做follow。

    为了方便演示,我将我本地的Zookeeper拷贝为了三份,不过记得修改它们三份中的配置文件。

    需要修改的是dataDir的路径以及端口号。

    服务器0中zoo.cfg

    //修改部分
    dataDir=/tmp/zookeeper/data0
    clientPort=2190
    //新增部分(三份cfg均相同)
    server.0=127.0.0.1:3333:3334
    server.1=127.0.0.1:4444:4445
    server.2=127.0.0.1:5555:5556
    

    服务器1中zoo.cfg

    //修改部分
    dataDir=/tmp/zookeeper/data1
    clientPort=2191
    //新增部分(三份cfg均相同)
    server.0=127.0.0.1:3333:3334
    server.1=127.0.0.1:4444:4445
    server.2=127.0.0.1:5555:5556
    

    服务器2中zoo.cfg

    //修改部分
    dataDir=/tmp/zookeeper/data2
    clientPort=2192
    //新增部分(三份cfg均相同)
    server.0=127.0.0.1:3333:3334
    server.1=127.0.0.1:4444:4445
    server.2=127.0.0.1:5555:5556
    

    分别启动三个Zookeeper服务端。

    zookeeper

    可以看到已经自动选出了一个Leader节点。

    此时我们启动一个zkCli来使用这个三节点集群。

    ./zkCli.sh -server 127.0.0.1:2190,127.0.0.1:2191,127.0.0.1:2192

    zookeeper

    可以看到zkCli已经连接到port为2191的节点,也就是服务器1(一个Follower节点)。

    现在我们关闭服务器1。

    zookeeper

  • 相关阅读:
    <customErrors>节点说明1
    C#进程启动实例
    WPF 打开文件 打开路径对话框
    修改注册表来修改IE的设置---资料汇总
    W3C小组宣布:HTML5标准制定完成
    HTML <center> 标签
    C#判断程序是否以管理员身份运行,否则以管理员身份重新打开
    HTML5新增的属性和废除的属性
    建造者模式之构建器
    【React全家桶入门之十】登录与身份认证
  • 原文地址:https://www.cnblogs.com/LexMoon/p/zookeeper01.html
Copyright © 2011-2022 走看看