0
点赞
收藏
分享

微信扫一扫

一文读懂zookeeper技术

静守幸福 2022-04-04 阅读 63

一、zookeeper的安装

1.下载linux环境zookeeper安装包(以3.6.3版本为例)

下载地址: zookeeper3.6.3
2.上传到服务器再解压:

tar -zxvf apache-zookeeper-3.6.3-bin.tar.gz

3.修改安装目录名:

mv apache-zookeeper-3.6.3-bin zookeeper-3.6.3

4.修改配置文件名称:

mv  ./conf/zoo_sample.cfg zoo.cfg

注意这里可以修改配置文件相关参数的:
在这里插入图片描述

5.在bin目录下启动zookeeper服务端:

./zkServer.sh start

如下图即为启动成功:
在这里插入图片描述

二、zookeeper的客户端和服务端的使用

操作zookeeper server端有两种方式,通过客户端连接或者java api代码实现连接:
在这里插入图片描述

1.服务端常用命令:

./zkServer.sh start   //启动zk
./zkServer.sh status  //zk状态
./zkServer.sh stop   //关闭zk
./zkServer.sh restart //重启zk

2.客户端命令:

./zkcli.sh    //不写默认连接本机
./zkcli.sh -server 127.0.0.1:2181   // 写ip端口可以连接其他机器的zk服务端
quit:   //退出客户端连接
ls /      //查看节点列表
ls /app1   //查询app1节点下的所有子节点

create /app1    //创建节点
get /app1       //获取节点数据
set /app1 123   // 设置节点数据
delete  /app1  //删除节点
deleteall /app1  //删除节点app1及以下的所有子节点

create -e  //创建临时节点
create -s  //创建顺序节点,自增的

ls -s /app1  //查看节点信息明细

二、javaAPI Curator 实现连接zookeeper服务端

curator是zookeeper的java客户端工具。官网: http://curator.apache.org

1.首先添加依赖:

 <dependency>
   <groupId>org.apache.curator</groupId>
   <artifactId>curator-framework</artifactId>
   <version>4.0.0</version>
</dependency>
<dependency>
   <groupId>org.apache.curator</groupId>
   <artifactId>curator-recipes</artifactId>
   <version>4.0.0</version>
</dependency>

2.建立连接:

public class CuratorDemo {

    /**
     * 测试curator连接zookeeper
     *
     * @param connectString:服务端ip地址
     * @param sessionTimeOUtMs:会话超时时间
     * @param connectionTimeOutMs:连接超时时间
     * @param retryPolicy:重试策略
     */
    public static void testConnect1() {
        // 重置策略
        RetryPolicy retryPolicy = new ExponentialBackoffRetry(1000, 10);
        //第一种方式
        CuratorFramework client = CuratorFrameworkFactory.newClient("192.168.1.201:2181", 60 * 1000, 15 * 1000, retryPolicy);
        // 开启连接
        client.start();
        System.out.println("连接成功" + client);
    }

    /**
     * 测试curator连接zookeeper
     *
     * @param connectString:服务端ip地址
     * @param sessionTimeOUtMs:会话超时时间
     * @param connectionTimeOutMs:连接超时时间
     * @param retryPolicy:重试策略
     */
    public static void testConnect2() {
        // 重置策略
        RetryPolicy retryPolicy = new ExponentialBackoffRetry(1000, 10);
        //第二种方式,链式编写
        CuratorFramework client = CuratorFrameworkFactory.builder()
                .connectString("192.168.1.201:2181")
                .sessionTimeoutMs(60 * 1000)
                .connectionTimeoutMs(15 * 1000)
                .retryPolicy(retryPolicy).build();

        // 开启连接
        client.start();
        System.out.println("连接成功" + client);
    }

    public static void main(String[] args) {
        testConnect2();
    }
}
举报

相关推荐

0 条评论