Spring Boot项目实战之整合Apache Dubbo分布式应用架构

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

一、dubbo基础架构

节点 角色说明
Provider 暴露服务的服务提供方
Consumer 调用远程服务的服务消费方
Registry 服务注册与发现的注册中心
Monitor 统计服务的调用次数和调用时间的监控中心
Container 服务运行容器

Spring Boot项目实战之整合Apache Dubbo分布式应用架构_第1张图片

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

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

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

二、dubbo整合步骤

(1)导入相关依赖
<dependencies>
            
            <dependency>
                <groupId>com.alibabagroupId>
                <artifactId>dubboartifactId>
                <version>2.6.0version>
            dependency>
			 
            <dependency>
                <groupId>com.101tecgroupId>
                <artifactId>zkclientartifactId>
                <version>0.10version>
            dependency>

            <dependency>
                <groupId>com.gitee.regergroupId>
                <artifactId>spring-boot-starter-dubboartifactId>
                <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(存放应用程序)下。

Spring Boot项目实战之整合Apache Dubbo分布式应用架构_第2张图片

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

Spring Boot项目实战之整合Apache Dubbo分布式应用架构_第3张图片

测试地址

Spring Boot项目实战之整合Apache Dubbo分布式应用架构_第4张图片

♚学习、实战、总结、分享,让生活变得更美好!
☞林大侠博客:https://coding0110lin.blog.csdn.net/  欢迎转载,一起技术交流探讨!

你可能感兴趣的:(Spring,Boot&Spring,Cloud)