zoukankan      html  css  js  c++  java
  • zookeeper单机模式与集群模式的配置与安装

            ZooKeeper 是一个为分布式应用所设计的分布的、开源的协调服务。设计 ZooKeeper 的目的是为了减轻分布式应程序所承担的协调任务,

    借助于 zookeeper 服务开发出高可靠的分布式协同程序。

           ZooKeeper 是构建dubbo框架最主要的组件学习zookeeper是学习dubbo框架的必学知识和最重要组成部分。

    ZooKeeper 的安装:

    方式1.单机模式安装:

    1. 解压

    2. 复制配置文件重命名为zoo.cfg:

                cd conf/

                cp zoo_sample.cfg  zoo.cfg

    1. 修改配置文件zoo.cfg内容:

    #数据目录

    dataDir=/home/admin/zookeeper/data

    #日志目录

    dataLogDir=/home/admin/zookeeper/logs

    #心跳间隔时间,zookeeper中使用的基本时间单位,毫秒值。每隔2秒发送一个心跳

    tickTime=2000

    #leader与客户端连接超时时间。表示5个心跳间隔

    initLimit=5

    #LeaderFollower之间的超时时间,表示2个心跳间隔

    syncLimit=2

    #客户端连接端口

    clientPort=2181


    :tickTime :基本事件单元,以毫秒为单位。它来指跳,最的session 过期时间为两倍的tickTimedataDir :存储内存中数据库快照的位置,如果不设置参数,更新事务志将被存储到默认位置。clientPort :监听客户端连接的端口。


    1. 需要保证在dataDirdataLogDir指定的路径下有相应的文件夹

    2. 如果bin下面的.sh等文件无权限就执行chmod 777 zkCli.sh 给对应的可执行程序授权

    3. bin目录下执行./zkServer.sh start 启动

    4. Ps-ef |grep zoopkeeper 查看是否启动

    5. bin目录下运行./zkCli.sh –server 127.0.0.1:2181 连接到zookeeper


    :使单机模式时户需要注意:这种配置式下没有ZooKeeper 副本,所以如果ZooKeeper 服务器出现故障,ZooKeeper服务将会停。



    方式2.集群模式安装

    集群模式有两种形式:

    1)使用多台机器,在每台机器上运行一个ZooKeeper Server进程;

    2)使用一台机器,在该台机器上运行多个ZooKeeper Server进程。

    在生产环境中,一般使用第一种形式,在练习环境中,一般使用第二种形式。


    操作和单机模式的安装类似,我们同样需要对JAVA 环境进设置,下载最新的ZooKeeper 稳定版本并配置相应的环境变量。不同之处在于每台机器上conf/zoo.cfg 配置件的参数设置,参考下的配置:

    2.1.配置参数

    #数据目录

    dataDir=/home/admin/zookeeperGroup/zookeeper1/data

    #日志目录

    dataLogDir=/home/admin/zookeeperGroup/zookeeper1/logs

    #心跳间隔时间,zookeeper中使用的基本时间单位,毫秒值。每隔2秒发送一个心跳

    tickTime=2000

    #leader与客户端连接超时时间。表示5个心跳间隔

    initLimit=5

    #LeaderFollower之间的超时时间,表示2个心跳间隔

    syncLimit=2

    #客户端连接端口。多个实例的端口配置不可重复

    clientPort=2181

    #server.NUM=IP:port1:port2  NUM表示本机为第几号服务器;IP为本机ip地址;

    #port1leaderfollower通信端口;port2为参与竞选leader的通信端口

    #多个实例的端口配置不能重复,如下:

    server.1=127.0.0.1:2222:2225

    server.2=127.0.0.1:3333:3335

    server.3=127.0.0.1:4444:4445


    注:“server.id=host:port:port”指出了不同的Zookeeper 的服务器的自身的标示,作为集群中一部分机器应该知道集群中其他的机器。用户可以从”server.id=host:port:port”中读取相关信息。在dataDir 目录创建一个文件名为myid 的文件,这个文件仅仅含有一行内容,指定的是自身的id 值。比如服务器id 1 就在这个文件写1.第一个port 是保持和主机通信,第二个port 是做选举的。

    2.2.添加myid文件

    dataDir指定的目录下添加myid文件,用于存储一个数值,用来作为该ZooKeeper Server进程的标识。即上面配置中的NUM。 

    启动:./bin/zkServer.sh start 

     查看状态:./bin/zkServer.sh status

     连接集群./bin/zkCli.sh -server 127.0.0.1:2181

    连接之后简单操作:

    使 ls 命令来查看当前 ZooKeeper 中所包含的内容:
    [zk: 127.0.0.1:2182(CONNECTED) 1] ls /
    [zookeeper]
    创建个新的 znode ,使 create /zk myData 。这个命令创建了个新的
    znode 节点“ zk ”以及与它关联的字符串:
    [zk: 127.0.0.1:2182(CONNECTED) 9] create /jiangzz "helloworld"
    Created /jiangzz
    [zk: 127.0.0.1:2182(CONNECTED) 10] ls /
    [jiangzz, zookeeper]
    运 get 命令来确认第步中所创建的 znode 是否包含我们所创建的字符
    串:
    [zk: 127.0.0.1:2182(CONNECTED) 11] get /jiangzz
    "helloworld"
    cZxid = 0x10000000b
    ctime = Thu Aug 13 05:58:13 CST 2015
    mZxid = 0x10000000b
    mtime = Thu Aug 13 05:58:13 CST 2015
    pZxid = 0x10000000b
    cversion = 0
    dataVersion = 0
    aclVersion = 0
    ephemeralOwner = 0x0
    dataLength = 12
    numChildren = 0
     通过 set 命令来对 zk 所关联的字符串进设置:
    [zk: 127.0.0.1:2182(CONNECTED) 14] set /jiangzz "lovejava"
    cZxid = 0x10000000b
    ctime = Thu Aug 13 05:58:13 CST 2015
    mZxid = 0x10000000c
    mtime = Thu Aug 13 06:01:25 CST 2015
    pZxid = 0x10000000b
    cversion = 0
    dataVersion = 1
    aclVersion = 0
    ephemeralOwner = 0x0
    dataLength = 10
    numChildren = 0
    我们将刚才创建的 znode 删除
    [zk: 127.0.0.1:2182(CONNECTED) 15] delete /jiangzz
    [zk: 127.0.0.1:2182(CONNECTED) 16] ls /
    [zookeeper]
    查看/jiangzz 已经被删除

  • 相关阅读:
    php第九节课
    php第八节课
    php第七节课
    php第六讲
    php第五节课
    php第四节课
    php第三节课
    Golang Slice切片
    Golang 反射
    Golang 流程控制
  • 原文地址:https://www.cnblogs.com/ajax-li/p/7865072.html
Copyright © 2011-2022 走看看