zoukankan      html  css  js  c++  java
  • Centos zookeeper集群 dubbo 使用

    前言

    ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等 [ 百度百科 ]

    开始

    1 .去官网,下载 ZooKeeper

     cd    /usr/local/
     wget  http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.5.2-alpha/zookeeper-3.5.2-alpha.tar.gz

    2 .创建文件夹,解压压缩包

     mkdir  -p  /usr/local/zookeeper
     tar  -zxvf  zookeeper-3.5.2-alpha.tar.gz -C /usr/local/zookeeper

    3 .配置zookeeper文件

     cd  /usr/local/zookeeper/zookeeper-3.5.2-alpha/conf/
     cp  zoo_sample.cfg zoo.cfg
     vi  /usr/local/zookeeper/zookeeper-3.5.2-alpha/conf/zoo.cfg

    配置如下:

    dataDir=/usr/local/zookeeper/zookeeper-3.5.2-alpha/data/
    server.1=192.168.0.118:2888:3888
    server.2=192.168.0.120:2888:3888
    server.3=192.168.0.121:2888:3888

    注意,这里的server.1(myid),需要在 /usr/local/zookeeper/zookeeper-3.5.2-alpha/data/下面创建文件名为 myid 内容是 1 来标识服务器

    4 .配置环境变量,在zookeeper文件后面附加如下配置

     vi /etc/profile

    配置如下:

     # idea - zookeeper-3.5.2 config start - 2017-09-01
    
       export ZOOKEEPER_HOME=/usr/local/zookeeper/zookeeper-3.5.2-alpha/
       export PATH=$ZOOKEEPER_HOME/bin:$PATH
       export PATH
    
     # idea - zookeeper-3.5.2 config start - 2017-09-01

    5 .刷新配置文件,并启动

      source       /etc/profile
      cd           /usr/local/zookeeper/zookeeper-3.5.2-alpha/bin/
      zkServer.sh  start
      zkServer.sh  status
      zkServer.sh  start-foreground  -- 启动错误信息 

    6 .如果查看状态报错,请关闭防火墙,命令如下

      systemctl stop firewalld
      systemctl disable firewalld

    8 .成功状态如下

    [root@localhost bin]#   zkServer.sh  status
    /usr/bin/java
    ZooKeeper JMX enabled by default
    Using config: /usr/local/zookeeper/zookeeper-3.5.2-alpha/bin/../conf/zoo.cfg
    Client port found: 2181. Client address: localhost.
    Mode: follower

    9 .dubbo中provider.xml配置如下:

        <dubbo:application name="hello-world-app"/>
        <dubbo:registry  protocol="zookeeper"  address="192.168.0.118:2181,192.168.0.120:2181,192.168.0.121:2181"  />
        <dubbo:service interface="com.alvis.service.interfaces.IDemoService" ref="demoService"  loadbalance="roundrobin"/>
        <bean id="demoService" class="com.alvis.service.implementes.DemoService"/>

    pom.xml中配置如下:

       <dependencies>
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>dubbo</artifactId>
                <version>2.5.3</version>
            </dependency>
            <dependency>
                <groupId>com.github.sgroschupf</groupId>
                <artifactId>zkclient</artifactId>
                <version>0.1</version>
            </dependency>
        </dependencies>

    10 .将服务打包成jar文件,发布到三个服务器中,使用命令开始运行服务

      java -jar /usr/local/dubbo/dubbo-provider.jar

    11 .dubbo consumer多次调用可以看到如下信息,如果某个服务挂了,会自动切换到其他2个节点

    Hello world, response form provider: 192.168.0.118:20880
    Hello world, response form provider: 192.168.0.120:20880
    Hello world, response form provider: 192.168.0.121:20880

    结束

  • 相关阅读:
    Linux命令:cp (copy)复制文件或目录
    使用 robots.txt 文件阻止或删除网页说明
    ecshop优化修改sitemap.xml到根目录
    我虚拟机上装的CentOS系统显示的ip配置是127.0.0.1,请问如何解决?
    Servlet/JSP vs. ASP.NET MVC
    Ubuntu Linux 上安装Apache的过程
    Ubuntu Linux 上安装Eclipse的过程
    sudo的意义
    Dependency Injection
    Ubuntu Linux 上安装TomCat的过程
  • 原文地址:https://www.cnblogs.com/alvis/p/9438835.html
Copyright © 2011-2022 走看看