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所需夹包
在父级项目的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里查看注册的服务。如图所示:
三、配置消费者
(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里发现消费服务。如图所示:
至此关于apache-dubbo的服务就算搭建完成了!剩下的内容就是深入去学习。
五、打赏区
如果这篇文章可以解决你的大部分疑惑,可以给你的工作带来帮助,希望可以随意打赏。爽快扫码哟!!!!