微服务-Springcloud-dubbo

2021-05-16  本文已影响0人  Wu杰语

dubbo是spring cloud的两大微服务架构之一,按照微服务部署,其结构如下:


image.png

对比于Netflix,sentinel处理了熔断,增加了seata处理事务。

Spring Cloud Netflex vs Spring Cloud Dubbo

组成部分 Spring Cloud Netflex Spring Cloud Dubbo
组成风格 和Spring boot脚手架风格一致,由多个组件完成各自独立的功能,由注解或配置组装成新组件 dubbo一个组件实现了绝大部分功能
rpc 直接由http作为rpc调用,使用tomcat完成通信,数据采用http协议、spring mvc完成了方法查找,jacson进行序列化和反序列化, dubbo提供了丰富的rpc调用,包括调用协议、序列化反序列化协议,由netty作为通信层
注册中心 支持多种注册中心 支持多注册中心,如同时配置nacos和zookeeper
配置中心 支持多种配置中心,如spring cloud config 支持多种配置中心,与nacos、zookeeper等配套比较好
网关 使用常用网关接入,默认Spring Cloud Config 使用常用网关接入
MQ 支持多种MQ 一般使用阿里RocketMQ
数据库 支持多种数据库 知此恨多种数据库
接口调用 使用openfeign组件,支持http调用 支持多种协调调用,dubbo默认支持
负载均衡 使用rabbon组件支持负载均衡 dubbo默认支持
限流降级 使用hystrix组件支持熔断限流降级 使用sentinal支持熔断

dubbo的扩展点

dubbo的整体架构图设计如下:


image.png

重点要看明白的是所有绿色的地方都是接口定义,都是用扩展点实现的。
在dubbo的META-INF/dubbo.internal下定义了dubbo所有的扩展点:


image.png
这些扩展点就是绿色接口的实现。此时思考一个问题,有这么多扩展点,是什么时候加载的呢?
通过url实现,dubbo有很多自定以的url,通过url中的关键字控制使用那种扩展点。

dubbo的优势

看了如上扩展点图列,就很容易明白dubbo的强大之处。

在扩展点框架下,dubbo的优势确实非常明显。

小结

对于Spring Cloud Netflix和Spring Cloud Dubbo,你喜欢哪个呢?这恐怕要仁者见仁,智者见智。
从设计风格上来讲:

对于我来讲,我比较认同Spring boot的设计风格。那么对于你呢,萝卜青菜,你最爱哪个?如果是你设计,你倾向于那种设计?我在想,如果一开始就是netflex的设计师来设计dubbo,会设计成什么样?

上一篇 下一篇

猜你喜欢

热点阅读