程序员:分布式架构,Spring Boot项目实战之整合Apache Dubbo

Apache Dubbo是一款高性能的Java RPC(远程过程调用:服务者、调用者隶属不同的服务器)框架!

dubbo基础架构

程序员:分布式架构,Spring Boot项目实战之整合Apache Dubbo

程序员:分布式架构,Spring Boot项目实战之整合Apache Dubbo

服务容器主要负责启动、加载、运行服务的提供者;服务提供者启动服务时,向注册中心注册自己的提供的服务;同样服务消费者启动服务时,向注册中心订阅自己的服务;注册中心(推荐zookeeper)主要负责返回服务提供者的地址列表给服务消费者,如果有修改,则基于长连接方式推送给服务消费者。

服务消费者是从提供者地址列表中,采用负载均衡的算法,选取一台服务提供者进行调用,如果调用时失败,则选取另一台服务提供者进行调用。

服务提供者与服务消费者,在内存中累计调用次数与时间,都会定时每分钟发送统计数据到注册中心,我们可以认为这就是“心跳机制”。

dubbo整合步骤

(1)导入相关依赖

<dependencies>

<!--引入dubbo的依赖-->

<dependency>

<groupId>com.alibaba</groupId>

<artifactId>dubbo</artifactId>

<version>2.6.0</version>

</dependency>

<!--引入zookeeper注册中心依赖-->

<dependency>

<groupId>com.101tec</groupId>

<artifactId>zkclient</artifactId>

<version>0.10</version>

</dependency>

<dependency>

<groupId>com.gitee.reger</groupId>

<artifactId>spring-boot-starter-dubbo</artifactId>

<version>1.0.10<</version>

</dependency>

</dependencies>

(2)两个注解

//服务提供者:import com.alibaba.dubbo.config.annotation.Service;

@Service //接口的实现类注解

public class TestServiceImpl implements TestService{ }

//服务消费者:import com.alibaba.dubbo.config.annotation.Reference;

@Reference //取代@Autowired注解,一般contorller类时自动注入使用

private TestService testService;

(3)两个配置(properties文件)

服务提供者添加至注册中心:

spring.dubbo.application.name=自定义服务名(不要下划线)

spring.dubbo.registry.protocol=zookeeper(推荐注册中心)

spring.dubbo.registry.address=192.168.xx.xxx:2181(注册中心)

spring.dubbo.base-package=com.xxxxx.yyy(服务提供者注册公共包名)

spring.dubbo.protocol.name=dubbo(dubbo协议)

服务消费者添加至注册中心:

spring.dubbo.application.name=自定义服务名

spring.dubbo.registry.protocol=zookeeper

spring.dubbo.registry.address=192.168.xx.xxx:2181(注册中心)

spring.dubbo.base-package=com.xxxxx.yyy(服务消费者注册公共包名)

spring.dubbo.protocol.name=dubbo

spring.dubbo.consumer.timeout=10000 #消费者超时时间设置

spring.dubbo.consumer.check=false #

dubbo监控中心

监控中心的主要目的:监控服务是否注册到注册中心中!

启动Spring Boot项目时,不启动监控中心也是可以的。监控中心的本质就是war(dubbo-admin-2.6.0),一个动态的web工程。其运行环境是jdk与tomcat,放在tomcat的webapps(存放应用程序)下。

tomcat会自动解压,将webapps 中xxx.war 删除,重启即可!

测试地址

程序员:分布式架构,Spring Boot项目实战之整合Apache Dubbo

相关推荐