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

  • 相关阅读:
    获取路径的方式
    读取XML文件(XmlNode和XmlElement区别)
    jQuery 选择器大全
    JS中Null与Undefined的区别
    浅谈JS中的!=、== 、!==、===的用法和区别
    sql面试 查找每个班级的前5名学生(取分类数据的前几条数据)
    C#动态方法调用
    C# 匿名对象(匿名类型)、var、动态类型 dynamic——实用之:过滤类属性、字段实用dynamic
    前言2
    2019-1-17 前言 C#高级编程(第11版)
  • 原文地址:https://www.cnblogs.com/LexMoon/p/zookeeper01.html
Copyright © 2011-2022 走看看