美文网首页
使用ZooKeeper设计一个组成员管理系统

使用ZooKeeper设计一个组成员管理系统

作者: 金果儿 | 来源:发表于2020-02-14 14:54 被阅读0次

    协同服务说明

    设计一个master-worker的组成员管理系统,要求系统中只有一个master,master能实时获取系统中worker的情况。

    保证组里只有一个master

    1. 启动客户端cli1
      zkCli.sh
    2. 创建znode节点,代表master
      create -e /master "m1:2233"

    1. 启动另外一个客户端cli2,执行如下命令,尝试成为master
      create -e /master "m2:2233"
      如果master节点正常,这个命令会执行失败。
    2. 执行stat -w /master监控master状态。
      当master状态发生改变时,cli2会收到通知。
      如果master被删除,cli2可以再次发起成为master的请求:
      create -e /master "m2:2233"

    master监控组里worker状态

    用workers下的znode表示znode。

    • 查看workers下znode节点状态
      ls -w /workers
    1. 执行zkCli.sh启动一个客户端, 作为worker1
    2. 执行如下命令创建worker1
      create -e /workers/w1 "w1:2224"
      执行成功后,master会收到一个通知。当执行ls -w /workers就可以看到w1。
    3. 另起一个zkCli,worker1不要退出,创建一个w2.
    4. master客户端也会收到一个通知。当执行ls -w /workers可以看到w1和w2。
    5. 在w1的客户端中执行quit命令,退出w1
    6. master客户端会收到w1被删除通知。当执行ls -w /workers只能看到w2。

    这就实现了一个master-worker的组成员管理系统。

    相关文章

      网友评论

          本文标题:使用ZooKeeper设计一个组成员管理系统

          本文链接:https://www.haomeiwen.com/subject/viwdfhtx.html