池偏一 | 博客 DEDICATED OPERATION AND MAINTENANCE DEVELOPMENT.
登录
X
X
  • 安装zookeeper集群

  • zookeeper 是一款基于java开发的分布式协调服务,是一种集配置管理、命名服务、分布式锁和发布订阅功能的集群服务。


    分布式与单机跑程序不同,因为程序中的先后顺序,执行结果和数据是否遗失问题都可以控制,但在分布式中由于网络等等各方面因素。经常结果和想象出入甚大。此时就可以用到zookeeper


    zookeeper 的选举功能保障了数据安全性、一致性和先后顺序性。




    实验说明: 三台虚拟机做zookeeper集群,集群个数最好是奇数个,原理详见zookeeper 详解


           安装zookeeper 请确保jdk 已安装好,否则无法启动


           三台虚拟机IP分别为:192.168.12.162  192.168.12.163  192.168.12.164




    一、 ssh 登陆192.168.12.162 做如下操作:


    1.1 下载解压zookeeper


    wget http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz -P /opt
    tar xf /opt/zookeeper-3.4.6.tar.gz -C /usr/local/
    mv /usr/local/zookeeper-3.4.6 /usr/local/zookeeper
    mkdir -p /usr/local/zookeeper/zookeeper-data/logs
    echo “1”> /usr/local/zookeeper/zookeeper-data/myid
    mv /usr/local/zookeeper/conf/zoo_sample.cfg /usr/local/zookeeper/conf/zoo.cfg

    1.2 配置zookeeper集群


    vim /usr/local/zookeeper/conf/zoo.cfg


    tickTime=2000    #zookeeper 时间单位的定量,ms级
    initLimit=10     #leader 和fowller 的初始化时间为10个ticktime
    syncLimit=5      #leader 和fowller 的心跳时间为5个ticktime,也就是10000ms
    dataDir=/usr/local/zookeeper/zookeeper-data
    dataLogDir=/usr/local/zookeeper/zookeeper-data/logs
    clientPort=2181                      #客户端连接端口
    server.1=192.168.12.162:2888:3888    #前面端口用于leader 与fowller 交换数据,后面端口用于leader 选举
    server.2=192.168.12.163:2888:3888
    server.3=192.168.12.164:2888:3888

    1.3 修改默认zookeeper.out 日志输出位置:


    将原日志输出文件位置注释掉,然后新增一行:

    ZOO_LOG_DIR="/usr/local/zookeeper/zookeeper-data/logs"


    编辑如下文件修改成如下样式:  

    vim /usr/local/zookeeper/bin/zkEnv.sh


    image.png


    1.4 同步集群中其他服务器配置


    scp –r /usr/local/zookeeper root@192.168.12.163:/usr/local/
    scp –r /usr/local/zookeeper root@192.168.12.164:/usr/local/



    二、 ssh 登陆192.168.12.163 修改myid 文件:

    echo “2” > /usr/local/zookeeper/zookeeper-data/myid

    三、ssh 登陆192.168.12.164修改myid 文件:

    echo “3” > /usr/local/zookeeper/zookeeper-data/myid

    四、 分别在三台机器上执行如下操作:


    4.1 启动zookeeper服务

    /usr/local/zookeeper/bin/zkServer.sh start

    4.2 查看zookeeper 启动状态

    /usr/local/zookeeper/bin/zkServer.sh status

    4.2 如启动失败,重新启动zookeeper 置于前台运行,可看到报错信息

    /usr/local/zookeeper/bin/zkServer.sh start-foreground


  • posted @ 2019-01-29 by 池偏一 阅读(86) 评论(0)
  • zookeeper 简单操作方法
  • 操作zookeeper ,可以使用kazoo库。pip install kazoo 安装该库


    简单操作zookeeper 示例代码:


    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    '''
        author : cpy
        data   : 20171220PM
        desc   : About Zookeeper
    '''
    from kazoo.client import KazooClient
    #连接zookeeper
    zk = KazooClient(hosts='192.168.12.162:2181,192.168.12.163:2181,192.168.12.164:2181')
    zk.start(timeout=10)
    #递归创建node
    zk.ensure_path('/config/webs/tests', acl=None)
    #设置node 值
    zk.set('/config/webs/tests', '67890')
    #获取node信息
    print zk.get('/config/webs/tests', watch=None)
    #查看node 子节点
    @zk.ChildrenWatch('/config/webs')
    def watch_children(children):
        print ("Children is now: %s" % children)
    #查看node 数据
    @zk.DataWatch('/config/webs/tests')
    def watch_node(data, stat):
        print "Version: %s, data: %s, CreateTime:%s" % (stat.version, data.decode("utf-8"), stat.ctime)
    zk.stop()
    C:\Python27\python.exe C:/Users/Administrator/Desktop/testzkp/clzkp.py
    ('67890', ZnodeStat(czxid=8589934732L, mzxid=8589934784L, ctime=1513731671893L, mtime=1513733303456L, version=7, cversion=0, aversion=0, ephemeralOwner=0, dataLength=5, numChildren=0, pzxid=8589934732L))
    Children is now: [u'tests']
    Version: 7, data: 67890, CreateTime:1513731671893
    Process finished with exit code 0


    image.png

  • posted @ 2019-01-29 by 池偏一 阅读(133) 评论(0)
  • 安装dubbo-admin

  • dubbo-admin 是阿里巴巴的开源工具,用来监控和管理发送端和消费端。


    一、下载阿里巴巴dubbo-admin 源码,地址: https://github.com/alibaba/dubbo


    wget https://github.com/alibaba/dubbo/archive/master.zip -O /usr/local/apache-tomcat-7.0.57/webapps/master.zip
    unzip -d /usr/local/apache-tomcat-7.0.57/webapps /usr/local/apache-tomcat-7.0.57/webapps/master.zip
    rm -f /usr/local/apache-tomcat-7.0.57/webapps/master.zip

    二、安装maven工具


    wget http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc/yum.repos.d/epel-apache-maven.repo
    yum -y install apache-maven

    三、打包dubbo 源码


    cd /usr/local/apache-tomcat-7.0.57/webapps/dubbo-master/dubbo-admin
    mvn package -Dmaven.skip.test=true
    cd /usr/local/apache-tomcat-7.0.57/webapps/dubbo-master/dubbo-admin/target

    image.png


    四、部署dubbo-admin

    mv /usr/local/apache-tomcat-7.0.57/webapps/dubbo-master/dubbo-admin/target/dubbo-admin-2.5.8.war /usr/local/apache-tomcat-7.0.57/webapps/

        vim /usr/local/apache-tomcat-7.0.57/conf/server.xml #将虚拟站点名称改成dubbo-admin

    <Host name="localhost"  appBase="">
    <Context path="" debug="0" docBase="webapps/dubbo-admin"/>


    #注册到zookeeper 并修改登录密码

    vim /usr/local/apache-tomcat-7.0.57/webapps/dubbo-admin/WEB-INF/dubbo.properties 

    dubbo.registry.address=zookeeper://cpy02.dev.xjh.com:2181?backup=cpy03.dev.xjh.com:2181,cpy04.dev.xjh.com:2181
    dubbo.admin.root.password=passwdcpy    #该处定义dubbo.admin 的root用户密码为passwdcpy    
    dubbo.admin.guest.password=passwdcpy    #该处定义dubbo.admin 的guest用户密码为passwdcpy


    /usr/local/apache-tomcat-7.0.57/bin/startup.sh


    image.png


    image.png


  • posted @ 2019-01-29 by 池偏一 阅读(68) 评论(0)
© 2017 池偏一 | 赣ICP备 17014207号