zoukankan      html  css  js  c++  java
  • ZK 使用记录

    1. 连接 ZK server

    ① 可以通过官方提供的 zkInspector 来连接。
    ② 可以通过官网下载的 zookeeper-xx.tar.gz 包中的 zkCli.cmd 来连接 (对界面没有要求的话,这种方式还是不错的)

    zkCli.cmd -timeout 5000 -r -server xxip:2181

    不加参数,默认连接的是 localhost:2181

    2. 查看 zk Server 的状态信息(Master or Slave)

    sh zkServer.sh status

    3. 查看有 zk 服务器上有多少连接

    netstat -ano|grep 2181
    // 查看当前 server 有多少客户端连接
    netstat -na | grep 2181 | wc -l

    4. 创建临时顺序结点命令

    查看所有命令:help

    # 在 /tmp 节点下创建一个以 0 开头的临时顺序结点:/tmp/0000000000
    >create -s -e /tmp/0

    https://www.cnblogs.com/sherrykid/p/5813148.html

    5. 使用 zk 做选举

    两种选举方案对比:
    采用临时节点:
    /selection/leader
    优点:逻辑简单,谁能创建 /selection/leader 节点,谁就是 leader
    缺点:1. 当 /leader 节点被删除后,有可能通知消息丢失
    如果是 leader 没有收到消息,其他节点有收到,则集群中会产生两个 leader
    2. 当非 leader 节点与 zk 的连接断开后,集群中的其他节点是无感知的

    采用临时顺序节点:
    /selection/0000000001
    优点:1. 集群中的每个实例都会拿到一个选举号,不管哪个实例连接断开,其他节点都可感知
    2. 如果 leader 的选举节点被删除后的消息丢失,我们可以使用定时检测选举节点是否在存在的方式(比如:1 min 检测一下 /selection/000000000x)是否存在,如果不存在,说明有消息丢失,则重新进行选举,从而及时修正集群中的 Leader 状态

     有待阅读 Curator 框架里面本身实现选举 API,看有什么值得借鉴的地方

    https://blog.csdn.net/luckykapok918/article/details/71633818
    zookeeper原生API注册Watcher需要反复注册,即Watcher触发之后就需要重新进行注册。另外,客户端断开之后重新连接到服务器也是需要一段时间。这就导致了zookeeper客户端不能够接收全部的 zookeeper 事件。zookeeper保证的是数据的最终一致性。因此,对于此问题需要特别注意,不要对zookeeper事件进行强依赖

     
  • 相关阅读:
    转载: RAID详解[RAID0/RAID1/RAID10/RAID5]
    用户交互式命令:read
    linux下fdisk分区管理、文件系统管理、挂载文件系统等
    linux文件系统下的特殊权限
    find命令详解
    python3中 getpass模块使用
    个人shell积累
    手把手教你利用爬虫爬网页(Python代码)
    数通HCIP-ospf知识点
    HCIE之路--超全ospf思维导图
  • 原文地址:https://www.cnblogs.com/kevin-yuan/p/12788038.html
Copyright © 2011-2022 走看看