zoukankan      html  css  js  c++  java
  • 安装 Dubbo 注册中心(Zookeeper-3.4.6)--单节点

    1、建议使用dubbo-2.3.3以上版本的使用zookeeper注册中心客户端
    2、Zookeeper是Apache Hadoop的子项目,强度相对较好,建议生产环境使用该注册中心。
    3、Dubbo未对Zookeeper服务器端做任何侵入修改,只需安装原生的Zookeeper服务器即可,所有注册中心逻辑适配都在调用Zookeeper客户端时完成。

    Dubbo建议使用Zookeeper作为服务的注册中心。

    把Zookeeper安装在192.168.1.100机器上,作为注册中心服务器
    1、为192.168.1.100主机名设置别名,在/etc/hosts文件中添加:
    # zookeeper servers
    192.168.1.100 master-provider-01

    2、到http://apache.fayea.com/zookeeper/下载zookeeper-3.4.6
    $ wget http://apache.fayea.com/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz

    3、解压zookeeper安装包,安装在/home/jqlin/dev/
    $ tar -zxvf zookeeper-3.4.6.tar.gz

    4、在/home/jqlin/dev/zookeeper-3.4.6目录下创建以下目录:
    $ cd /home/jqlin/dev/zookeeper-3.4.6
    $ mkdir data
    $ mkdir logs

    5、将 zookeeper-3.4.6/conf 目录下的 zoo_sample.cfg 文件拷贝一份,命名为zoo.cfg
    $ cp zoo_sample.cfg zoo.cfg

    6、修改zoo.cfg配置文件

    # The number of milliseconds of each tick
    tickTime=2000
    # The number of ticks that the initial 
    # synchronization phase can take
    initLimit=10
    # The number of ticks that can pass between 
    # sending a request and getting an acknowledgement
    syncLimit=5
    # the directory where the snapshot is stored.
    # do not use /tmp for storage, /tmp here is just 
    # example sakes.
    dataDir=/home/jqlin/dev/zookeeper-3.4.6/data 
    dataLogDir=/home/jqlin/dev/zookeeper-3.4.6/logs
    # the port at which the clients will connect
    clientPort=2181
    # the maximum number of client connections.
    # increase this if you need to handle more clients
    #maxClientCnxns=60
    #
    # Be sure to read the maintenance section of the 
    # administrator guide before turning on autopurge.
    #
    # http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
    #
    # The number of snapshots to retain in dataDir
    #autopurge.snapRetainCount=3
    # Purge task interval in hours
    # Set to "0" to disable auto purge feature
    #autopurge.purgeInterval=1
    #2888,3888 are election port
    server.1=master-provider-01:2888:3888
    View Code
    zoo.cfg配置文件说明:
    2888端口号是zookeeper服务之间通信的端口。 
    3888是zookeeper与其他应用程序通信的端口。 
    master-provider-01是在hosts中已映射了IP的主机名。 
    
    initLimit:这个配置项是用来配置 Zookeeper 接受客户端(这里所说的客户端不是用户连接 Zookeeper服务器的客户端,而是 Zookeeper 服务器集群中连接到 Leader 的 Follower 服务器)初始化连接时最长能忍受多少个心跳时间间隔数。当已经超过 10 个心跳的时间(也就是 tickTime)长度后 Zookeeper 服务器还没有收到客户端的返回信息,那么表明这个客户端连接失败。总的时间长度就是 5*2000=10 秒。 
    
    syncLimit:这个配置项标识 Leader 与 Follower 之间发送消息,请求和应答时间长度,最长不能超过多少个 tickTime 的时间长度,总的时间长度就是 2*2000=4秒。
    
    server.A=B:C:D:
    A 是一个数字,表示这个是第几号服务器;
    B 是这个服务器的IP地址或/etc/hosts文件中映射了IP的主机名;
    C 表示的是这个服务器与集群中的 Leader 服务器交换信息的端口;
    D 表示的是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader,而这个端口就是用来执行选举时服务器相互通信的端口。
    如果是伪集群的配置方式,由于 B 都是一样,所以不同的 Zookeeper 实例通信端口号不能一样,所以要给它们分配不同的端口号。

    7、在 dataDir=/home/jqlin/dev/zookeeper-3.4.6/data 下创建myid文件
    编辑myid文件,并在对应的IP的机器上输入对应的编号。如在zookeeper上,myid文件内容就是1。如果只在单点上进行安装配置,那么只有一个server.1。
    $ vi myid

    8、配置zookeeper环境变量

    jqlin用户下修改 vim /home/jqlin/.bashrc,新增如下内容:
    # zookeeper env
    export ZOOKEEPER_HOME=/home/jqlin/dev/zookeeper-3.4.6
    export PATH=$ZOOKEEPER_HOME/bin:$PATH

    使配置文件生效
    $ source /home/jqlin/.bashrc

    9、在防火墙中打开要用到的端口2181、2888、3888
    切换到root用户权限,执行以下命令:
    # chkconfig iptables on
    # service iptables start

    编辑/etc/sysconfig/iptables
    # vi /etc/sysconfig/iptables

    增加以下 3 行:
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 2181 -j ACCEPT
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 2888 -j ACCEPT
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 3888 -j ACCEPT

    重启防火墙:
    # service iptables restart

    查看防火墙端口状态:
    # service iptables status

    看到如下信息,表示启动成功
    5 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:2181
    6 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:2888
    7 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:3888

    10、启动并测试zookeeper(要用 jqlin 用户启动,不要用 root):
    (1) 使用jqlin用户到/home/jqlin/dev/zookeeper-3.4.6/bin目录中执行:
    $ zkServer.sh start

    (2) 输入jps命令查看进程:
    $ jps
    1456 QuorumPeerMain
    1475 Jps
    其中,QuorumPeerMain是 zookeeper进程,启动正常

    (3) 查看状态:
    $ zkServer.sh status
    其中,Mode: standalone表示单机启动zookeeper

    (4) 查看zookeeper服务输出信息:
    由于服务信息输出文件在/home/jqlin/dev/zookeeper-3.4.6/bin/zookeeper.out
    $ tail -500f zookeeper.out

    11、停止zookeeper 进程:
    $ zkServer.sh stop

    12、配置zookeeper开机使用jqlin用户启动:
    编辑/etc/rc.local文件,加入如下内容:
    su - jqlin -c '/home/jqlin/dev/zookeeper-3.4.6/bin/zkServer.sh start'

  • 相关阅读:
    HDU 5059 Help him
    HDU 5058 So easy
    HDU 5056 Boring count
    HDU 5055 Bob and math problem
    HDU 5054 Alice and Bob
    HDU 5019 Revenge of GCD
    HDU 5018 Revenge of Fibonacci
    HDU 1556 Color the ball
    CodeForces 702D Road to Post Office
    CodeForces 702C Cellular Network
  • 原文地址:https://www.cnblogs.com/linjiqin/p/5169835.html
Copyright © 2011-2022 走看看