Zookeeper

Zookeeper

安装zookeeper

  • 前提条件: 已安装JDK

    解压
    tar -zxvf apache-zookeeper-3.5.8-bin.tar.gz
    cd  apache-zookeeper-3.5.8-bin
    cp zoo_sample.cfg  zoo.cfg 
    启动服务器
    bin/zkServer.sh start conf/zoo.cfg
    #连接服务器
    bin/zkCli.sh -server ip:port 
    
  • 在阿里云中安装zookeeper后,java客户端可能连接失败,这是因为端口没有开放导致的。这里在安全组中加入就行
    在这里插入图片描述

    • 测试连接
    public class ZookeeperTest {
    
    private static final String ZK_ADDRESS = "IP:2181";
    
    private static final int SESSION_TIMEOUT = 5000;
    
    private static ZooKeeper zooKeeper;
    
    private static final String ZK_NODE = "/zk-node";
    
    public static void main(String[] args) throws Exception {
    
        final CountDownLatch countDownLatch = new CountDownLatch(1);
        zooKeeper = new ZooKeeper(ZK_ADDRESS, SESSION_TIMEOUT, event -> {
            if (event.getState() == Watcher.Event.KeeperState.SyncConnected &&
                    event.getType() == Watcher.Event.EventType.None) {
                countDownLatch.countDown();
                System.out.println("连接成功!");
            }
        });
        System.out.println("连接中....");
        countDownLatch.await();
    }
    
    

znode的四种创建类型(Create Mode)

  • PERSISTEN 持久化结点,一旦创建,永久存在
  • EPHEMERAL 临时结点,客户端session超时这类结点就会被服务器自动删除
  • PERSISTENT_SEQUENTIAL 持久化结点的基础上,自带顺序
  • EPHEMERAL_SEQUENTIAL 临时结点的基础上,自带顺序
    在3.5.x版本引入的类型
  • Container 当没有子节点时,将会被服务器删除,默认60s检查一次
  • TTL结点 过了指定时间,会被服务器删除,默认禁用(不稳定)

事件监听机制

客户端监听它所感兴趣的任意结点、目录和递归子目录结点,对应下面三种情况,客户端将被通知

  • 对单个结点的监听
    当监听的结点被删除、修改时
  • 对某个目录的监听
    当这个目录有子节点被创建、删除
  • 对某个目录的地柜子节点监听
    当这个目录下面的任意子节点有子节点被创建、删除或者根节点有数据变化时

Zookeeper集群中结点角色

  • Leader 负责读写数据
  • Follow 如果接收到写请求,会将请求转发给leader,只负责读数据
  • Observer 不参与zab协议的过半机制

分布式锁以及使用场景

ZAB协议

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值