Dubbox

Dubbox是什么

  Dubbox是一个分布式服务框架,前身是阿里巴巴的开源项目Dubbo,后来阿里不再维护此框架;进而当当网进行了进一步维护,为了和Dubbo区分就取名为Dubbox。

  简单而言,在Dubbox中主要存在三种角色:注册中心(Registry)、 提供者(Provider)、消费者(Customer)。

而作为分布式框架之一的Dubbox就能够实现消费方和提供方之间的远程调用,即对分别部署在不同服务器端的服务提供了一个相互交互的平台。

      Dubbox_第1张图片

  节点角色说明:   

        Provider: 暴露服务的提供方

      Consumer: 调用远程服务的服务消费方

      Registry: 服务注册与发现的注册中心

      Monitor: 统计服务调用次数和调用时间的监控中心

      Container: 服务运行容器

  调用关系说明: 

          服务容器负责启动、加载,运行服务提供者

      服务提供者在启动时,向注册中心注册自己提供的服务

      服务消费者在启动时,向注册中心订阅自己所需的服务

      注册中心返回返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。

      服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台

      服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。

一、部署环境

  1、下载源码:

    网址:https://github.com/dangdangdotcom/dubbox/tree/dubbox-2.8.4

    然后解压;

  2、在源码路径下运行: mvn clean install -Dmaven.test.skip=true

    如: cmd进入D:\soft\dubbox-master 然后执行 mvn clean install -Dmaven.test.skip=true

    Dubbox_第2张图片

     Dubbox_第3张图片

  3、运行  mvn install:install-file -Dfile=E:\accp\Y2\Dubbo\dubbox-dubbox-2.8.4\dubbo\target\dubbo-2.8.4.jar -DgroupId=com.alibaba -DartifactId=dubbo -Dversion=2.8.4 -Dpackaging=jar -DgeneratePom=true

       Dubbox_第4张图片

     Dubbox_第5张图片

 

 

 二、导入依赖  

<dependencies>
    <dependency>
      <groupId>junitgroupId>
      <artifactId>junitartifactId>
      <version>4.11version>
      <scope>testscope>
    dependency>
    <dependency>
      <groupId>com.alibabagroupId>
      <artifactId>dubboartifactId>
      <version>2.8.4version>
    dependency>
    
    <dependency>
      <groupId>com.github.sgroschupfgroupId>
      <artifactId>zkclientartifactId>
      <version>0.1version>
    dependency>
    <dependency>
      <groupId>org.jboss.resteasygroupId>
      <artifactId>resteasy-jaxrsartifactId>
      <version>3.0.7.Finalversion>
    dependency>
    <dependency>
      <groupId>org.jboss.resteasygroupId>
      <artifactId>resteasy-clientartifactId>
      <version>3.0.7.Finalversion>
    dependency>
    <dependency>
      <groupId>javax.validationgroupId>
      <artifactId>validation-apiartifactId>
      <version>1.0.0.GAversion>
    dependency>

    
    <dependency>
      <groupId>org.jboss.resteasygroupId>
      <artifactId>resteasy-jackson-providerartifactId>
      <version>3.0.7.Finalversion>
    dependency>

    
    <dependency>
      <groupId>org.jboss.resteasygroupId>
      <artifactId>resteasy-jaxb-providerartifactId>
      <version>3.0.7.Finalversion>
    dependency>

    
    <dependency>
      <groupId>org.jboss.resteasygroupId>
      <artifactId>resteasy-nettyartifactId>
      <version>3.0.7.Finalversion>
    dependency>

    
    <dependency>
      <groupId>org.jboss.resteasygroupId>
      <artifactId>resteasy-jdk-httpartifactId>
      <version>3.0.7.Finalversion>
    dependency>

    
    <dependency>
      <groupId>org.apache.tomcat.embedgroupId>
      <artifactId>tomcat-embed-coreartifactId>
      <version>8.0.11version>
    dependency>
    <dependency>
      <groupId>org.apache.tomcat.embedgroupId>
      <artifactId>tomcat-embed-logging-juliartifactId>
      <version>8.0.11version>
    dependency>
    <dependency>
      <groupId>com.esotericsoftware.kryogroupId>
      <artifactId>kryoartifactId>
      <version>2.24.0version>
    dependency>
    <dependency>
      <groupId>de.javakaffeegroupId>
      <artifactId>kryo-serializersartifactId>
      <version>0.26version>
    dependency>
    <dependency>
      <groupId>de.ruedigermoellergroupId>
      <artifactId>fstartifactId>
      <version>1.55version>
    dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.coregroupId>
      <artifactId>jackson-coreartifactId>
      <version>2.3.3version>
    dependency>
    <dependency>
      <groupId>org.mortbay.jettygroupId>
      <artifactId>jettyartifactId>
      <version>7.0.0.pre5version>
    dependency>
    <dependency>
      <groupId>com.dubbogroupId>
      <artifactId>dubbox_serviceartifactId>
      <version>1.0-SNAPSHOTversion>
      <scope>compilescope>
    dependency>
  dependencies>
View Code

 三、dubbox_service (公用service)

  3.1 目录展示

      Dubbox_第6张图片

  3.2 DoSomeService

     Dubbox_第7张图片

 四、dubbox_provider (生产者)

  4.1 目录展示

     Dubbox_第8张图片

   4.2 DoSomeServiceImpl

     Dubbox_第9张图片

   4.3 配置文件 applicationContext-provider.xml

    Dubbox_第10张图片

   4.4 AppTest测试类

    Dubbox_第11张图片

 五、dubbox_consumer (消费者)

  5.1 目录展示

    Dubbox_第12张图片

  5.2 DoSomeService

    Dubbox_第13张图片

  5.3 配置文件 applicationContext-consumer.xml

    Dubbox_第14张图片

  5.4 AppTest 测试类

    Dubbox_第15张图片

 六、运行

  6.1 运行 dubbox_provider 的AppTest

    Dubbox_第16张图片 

   6.2 运行 dubbox_consumer 的AppTest

    Dubbox_第17张图片

   6.3 运行页面

    Dubbox_第18张图片

     Dubbox_第19张图片

 

你可能感兴趣的:(Dubbox)