Dubbo搭建




Dubbo采用全Spring配置方式,透明化接入应用,对应用没有任何API侵入,只需用Spring加载Dubbo的配置即可,Dubbo基于Spring的Schema扩展进行加载。 如果不想使用Spring配置,而希望通过API的方式进行调用(不推荐),请参见:API配置。这里我们采用的是spring-boot与dubbo的集成,如果只是与纯spring集成,可能不太适合你的需求,因为按照这个配置可能会无法正常启动。其次注册中心为:zookeeper。这里不讲解zk、dubbo-admin的安装过程。dubbo-admin只是一个辅助工具,可以省略安装。但一定要先安装zk并启动zk,在按照该文档进行dubbo服务的创建。



 



dubbo版本:2.7.3



<dependency>
    <groupId>org.apache.dubbo</groupId>
    <artifactId>dubbo</artifactId>
    <version>2.7.3</version>
</dependency>

demo完整地址:https://gitee.com/mxd58/service-parent 项目结构如图所示:




dubbo alibaba升级到apache_spring


 


一、引入dubbo所需夹包


在父级项目的pom文件引入dubbo夹包管理项


<!-- Aapche Dubbo 这个包里管理者着dubbo所用到的外部夹包  -->
<dependency>
    <groupId>org.apache.dubbo</groupId>
    <artifactId>dubbo-dependencies-bom</artifactId>
    <version>2.7.3</version>
    <type>pom</type>
    <scope>import</scope>
</dependency>

<!-- Aapche Dubbo 这个包里管理着dubbo 自己的夹包  -->
<dependency>
    <groupId>org.apache.dubbo</groupId>
    <artifactId>dubbo-bom</artifactId>
    <version>2.7.3</version>
    <type>pom</type>
    <scope>import</scope>
</dependency>

在生产者与消费者 pom 文件中引入如下夹包。


<properties>
    <dubbo.version>2.7.3</dubbo.version>
</properties>

<!--dubbo依赖夹包-->
<dependency>
    <groupId>org.apache.dubbo</groupId>
    <artifactId>dubbo</artifactId>
    <version>${dubbo.version}</version>
</dependency>
<dependency>
    <groupId>org.apache.dubbo</groupId>
    <artifactId>dubbo-spring-boot-starter</artifactId>
    <version>${dubbo.version}</version>
</dependency>

<!-- Zookeeper dependencies -->
<dependency>
    <groupId>org.apache.dubbo</groupId>
    <artifactId>dubbo-dependencies-zookeeper</artifactId>
    <version>${dubbo.version}</version>
    <type>pom</type>
    <exclusions>
        <exclusion>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
        </exclusion>
    </exclusions>
</dependency>

<dependency>
    <groupId>io.netty</groupId>
    <artifactId>netty-all</artifactId>
    <version>4.1.32.Final</version>
</dependency>

二、配置生产者(这里采用xml方式配置)


 


(1)创建dubbo-provider.xml,并在文件填写如下内容

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:dubbo="http://dubbo.apache.org/schema/dubbo"
       xmlns="http://www.springframework.org/schema/beans"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
       http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd">

    <!-- Provider application information for computing dependencies -->
    <dubbo:application name="dubbo-provider"/>

    <!-- Using the zookeeper broadcast registry to expose service addresses -->
    <dubbo:registry address="zookeeper://127.0.0.1:2184"/>

    <!-- Exposing service at port 20880 with Dubbo protocol -->
    <dubbo:protocol name="dubbo" port="20881"/>

    <!--监控中心-->
    <!--<dubbo:monitor protocol="registry"/>-->

    <!--服务管理模块-->
    <dubbo:service interface="com.dubbo.provider.api.UserService" ref="userServiceImpl" version="1.0"/>
</beans>

(2)创建启动类,使用@ImportResource加载配置文件


package cn.com.xiaodong;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ImportResource;

/**
* 项目运行服务的启动类
* auth maxiaodong time 2018/3/12.
*/
@SpringBootApplication
@ImportResource(value = {"classpath:dubbo-provider.xml"})
public class ProviderApplication {
/**
* 项目启动类
* @param args
*/
public static void main(String[] args) {
        //启动方法
        SpringApplication.run(ProviderApplication.class, args);
}

启动服务,之后就可以在dubbo-admin里查看注册的服务。如图所示:


dubbo alibaba升级到apache_xml_02


 


 


 


三、配置消费者

(1)创建dubbo-consumer.xml,并在文件填写如下内容

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:dubbo="http://dubbo.apache.org/schema/dubbo"
       xmlns="http://www.springframework.org/schema/beans"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
       http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd">


    <!-- 提供方应用信息,用于计算依赖关系,自己的服务名是什么就是什么,不要和其余服务名一样 -->
    <dubbo:application name="dubbo-consumer"/>

    <!-- 注册中心暴露服务地址 -->
    <dubbo:registry protocol="zookeeper" address="127.0.0.1:2184"/>

    <dubbo:reference id="userService" interface="com.dubbo.provider.api.UserService" version="1.0"/>

</beans>

(2)创建启动类,使用@ImportResource加载配置文件

package cn.com.xiaodong;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ImportResource;

/**
* 生产者项目启动类
* auth maxiaodong time 2018/3/12.
*/
@SpringBootApplication
@ImportResource(value = {"classpath:dubbo-consumer.xml"})
public class ConsumerApplication {


    /**
     * 项目启动类
     * @param args
     */
    public static void main(String[] args) {
        //
        SpringApplication.run(ConsumerApplication.class, args);
    }
}


启动服务,之后就可以在dubbo-admin里发现消费服务。如图所示:


dubbo alibaba升级到apache_dubbo_03


 


至此关于apache-dubbo的服务就算搭建完成了!剩下的内容就是深入去学习。


 


五、打赏区

如果这篇文章可以解决你的大部分疑惑,可以给你的工作带来帮助,希望可以随意打赏。爽快扫码哟!!!!