• JAVA项目从运维部署到项目开发(二.ZooKeeper)


    一、zookeeper的相关介绍

      点击查看

    二、下载、安装与配置

      1.ZooKeeper官网下载地址(点击跳转),当前稳定版本为V3.4.12。Liniux下可以在指定目录,使用wget命令下载。

    https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/stable/zookeeper-3.4.12.tar.gz

      2.解压下载的压缩包到当前目录

    tar -xf ZooKeeper-3.4.12.tar.gz 

      3.配置zookeeper

        3.1单机模式

          3.1.1编辑配置文件

      在"conf"目录下,通过命令:

    cp zoo_sample.cfg zoo.cfg

       新建一个名为"zoo.cfg'的文件,其中配置内容如下:

    tickTime=2000
    initLimit=10
    syncLimit=5
    dataDir=/Users/abel/redis/zookeeper/data
    dataLogDir=/Users/abel/redis/zookeeper/log
    clientPort=2181

       参数说明:

    #tickTime: zookeeper中使用的基本时间单位, 毫秒值.
    #dataDir: 数据目录. 可以是任意目录.
    #dataLogDir: log目录, 同样可以是任意目录. 如果没有设置该参数, 将使用和#dataDir相同的设置.
    #clientPort: 监听client连接的端口号.

           3.1.2 启动Zookeeper服务

      执行 sudo ./zkServer.sh start 命令,运行ZooKeeper Server进程,得到如图所示结果,表示后台运行ZooKeeper Server进程成功。

      注:命令 sh zkServer.sh status 连接成功验证Zookeeper 是否启动成功

      停止:sudo ./zkServer.sh stop

      非后台运行ZooKeeper Server进程执行命令:sudo ./zkServer.sh start-foreground

      3.2集群模式

        集群模式有两种形式:
          1)使用多台机器,在每台机器上运行一个ZooKeeper Server进程;
          2)使用一台机器,在该台机器上运行多个ZooKeeper Server进程。
        在生产环境中,一般使用第一种形式,在练习环境中,一般使用第二种形式。

          3.2.1 编辑配置文件

        集群模式下一些常见的参数配置: 

      1. data目录
        用于存放进程运行数据。 
      2. data目录下的myid文件
        用于存储一个数值,用来作为该ZooKeeper Server进程的标识。 
      3. 监听Client端请求的端口号
      4. 监听同ZooKeeper集群内其他Server进程通信请求的端口号
      5. 监听ZooKeeper集群内“leader”选举请求的端口号
        该端口号用来监听ZooKeeper集群内“leader”选举的请求。注意这个是ZooKeeper集群内“leader”的选举,跟分布式应用程序无关。
        参数配置注意事项:
        1)同一个ZooKeeper集群内,不同ZooKeeper Server进程的标识需要不一样,即myid文件内的值需要不一样
        2)采用上述第2种形式构建ZooKeeper集群,需要注意“目录,端口号”等资源的不可共享性,如果共享会导致ZooKeeper Server进程不能正常运行,比如“data目录,几个监听端口号”都不能被共享
    myid Data目录 Client Server Leader 配置文件
    1 /z1/data 2181 2222 2223 z1.cfg
    2 /z2/data 2182 3333 3334 z2.cfg
    3 /z3/data 2183 4444 4445 z3.cfg

     配置如下:

        # zx.cfg  
        tickTime=2000  
        initLimit=10  
        syncLimit=2  
        dataDir=/usr/myenv/zookeeper-3.4.8/zx/data  
        clientPort=218x  
        # server.x中的"x"表示ZooKeeper Server进程的标识  
        server.1=127.0.0.1:2222:2225  
        server.2=127.0.0.1:3333:3335  
        server.3=127.0.0.1:4444:4445

      注:

    • initLimit: zookeeper集群中的包含多台server, 其中一台为leader, 集群中其余的server为follower. initLimit参数配置初始化连接时, follower和leader之间的最长心跳时间. 此时该参数设置为5, 说明时间限制为5倍tickTime, 即5*2000=10000ms=10s.
    • syncLimit: 该参数配置leader和follower之间发送消息, 请求和应答的最大时间长度. 此时该参数设置为2, 说明时间限制为2倍tickTime, 即4000ms

          3.2.2 启动Zookeeper服务

      分别执行以下命令以运行上述配置的3个ZooKeeper Server进程: 

      bin/zkServer.sh start deploy/z1/z1.cfg
      bin/zkServer.sh start deploy/z2/z2.cfg
      bin/zkServer.sh start deploy/z3/z3.cfg

          3.2.3 运行ZooKeeper命令行客户端

      执行命令建立ZooKeeper Client端到ZooKeeper集群的连接会话

    bin/zkCli.sh -server 127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183

    参考资料:

      坑爹的ZooKeeper的错误

      Mac下ZooKeeper环境部署,Linux方法相同

  • 相关阅读:
    单例模式
    mysql之group_concat函数详解
    json中如何将key中的引号去掉
    show status,修改mysql用户密码 使用
    ThinkPHP连贯查询之子查询
    输入1-53周,输出1-53周的开始时间和结束时间
    Java编辑环境搭建
    Java语言简介
    html中iframe根据子页面内容动态修改高度
    JavaScript---通过正则表达式验证表单输入
  • 原文地址:https://www.cnblogs.com/bluesky-yuan/p/9231968.html
Copyright © 2020-2023  润新知