Spring Boot项目实战之整合Apache Dubbo分布式应用架构 - Go语言中文社区

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


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

一、dubbo基础架构

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

在这里插入图片描述

  服务容器主要负责启动、加载、运行服务的提供者;服务提供者启动服务时,向注册中心注册自己的提供的服务;同样服务消费者启动服务时,向注册中心订阅自己的服务;注册中心(推荐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 删除,重启即可!

在这里插入图片描述

测试地址

在这里插入图片描述

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

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/LINHONG_1994/article/details/103418776
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2021-12-11 20:50:12
  • 阅读 ( 1166 )
  • 分类:架构

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢