【Java】Dubbo+zookeeper搭建分布式服务框架

一、前言

      前一段时间,小编工作的架构换成了Dubbo的分布式架构,项目也改成了SOA(面向服务的架构),在项目中分成了六个服务,每个服务可以单独运行,服务之间也可以互相调用。下面小编就Dubbo官网提供的一个简单的Demo来带领大家实现一个分布式服务框架。

二、环境要求

  • idea ,Eclipse也可以

  • Centos 7

  • zookeeper安装包

  • Linux 环境下的 jdk-8u131-linux-x64.rpm

  • 联网下载Dubbo官网提供的代码

      说明: 
      为啥我们要搭建一个分布式服务架构还需要装zookeeper呢? 
这个就得从Dubbo的机制来说明了,从下图可以看出,Dubbo架构中分成了提供者消费者,提供者需要把自己的服务注册到注册中心,消费者订阅注册中心,注册中心有提供者后,会通知消费者。


这里写图片描述

三、安装zookeeper

      安装ZK需要安装jdk。

3.1 Centos 7 安装 Jdk

1、下载jdk并上传到/usr/local/src目录

      使用WinSCP软件,把下载好的jdk-8u131-linux-x64.rpm,上传到/usr/local/src下。

2、解压安装

      运行如下命令进行解压

rpm -ivh jdk-8u131-linux-x64.rpm


这里写图片描述

3、配置profile文件

      运行如下命令:

    vim /etc/profile

      将如下内容添加内容添加到profile文件末尾

    export JAVA_HOME=/usr/java/jdk1.8.0_131
    export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    export PATH=$PATH:$JAVA_HOME/bin


这里写图片描述

      保存之后,运行如下命令使配置生效

    source /etc/profile

      检查jdk是否安装成功,运行如下命令

    java -version

3.2 安装zk

3.1下载ZooKeeper

      要在您的计算机上安装ZooKeeper框架,请访问以下链接并下载最新版本的ZooKeeper。 http://zookeeper.apache.org/releases.html

      到目前为止,最新版本的ZooKeeper是3.4.6(ZooKeeper-3.4.6.tar.gz)。 

步骤2.2:解压tar文件

      使用以下命令提取tar文件 -

    $ cd opt/
    $ tar -zxf zookeeper-3.4.6.tar.gz
    $ cd zookeeper-3.4.6
    $ mkdir data

步骤2.3:创建配置文件

在zookeeper/conf下的建立一个zoo.cfg文件

      使用命令 vi conf / zoo.cfg 打开名为 conf / zoo.cfg 的配置文件,并将所有以下参数设置为起点。

    $ vi conf/zoo.cfg

    tickTime = 2000
    dataDir = /path/to/zookeeper/data
    clientPort = 2181
    initLimit = 5
    syncLimit = 2

      一旦成功保存配置文件,再次返回终端。 您现在可以启动zookeeper服务器。

步骤2.4:启动ZooKeeper服务器

      执行以下命令 :

    $ bin/zkServer.sh start

      执行此命令后,您将收到一个响应如下 :

    $ JMX enabled by default
    $ Using config: /Users/../zookeeper-3.4.6/bin/../conf/zoo.cfg
    $ Starting zookeeper ... STARTED

步骤2.5:启动CLI

      键入以下命令 :

    $ bin/zkCli.sh

      输入上述命令后,您将连接到ZooKeeper服务器,您应该得到以下响应。

    Connecting to localhost:2181
    ................
    ................
    ................
    Welcome to ZooKeeper!
    ................
    ................
    WATCHER::
    WatchedEvent state:SyncConnected type: None path:null
    [zk: localhost:2181(CONNECTED) 0]

      停止ZooKeeper服务器 
      连接服务器并执行所有操作后,可以使用以下命令停止zookeeper服务器。

    $ bin/zkServer.sh stop

四、Dubbo项目

      在Dubbo官网中下载项目中:


这里写图片描述

      导入idea:


这里写图片描述

      使用dubbo-demo进行测试:项目中分为了提供者和消费者:


这里写图片描述

      修改注册中心的路径:


这里写图片描述

      先运行生产者:


这里写图片描述

      运行消费者:


这里写图片描述

      在生产者得到的反馈:


这里写图片描述

五、小结

      通过这次的动手实践,对Dubbo的运行环境有了一个初步的了解,也更加对项目中的框架认识更加的深刻。这篇博客中,小编没有贴代码,没有对代码中的信息进行分析,这些将在后面的博客中向大家依次介绍。敬请期待。

猜你喜欢

转载自blog.csdn.net/albenxie/article/details/80321799