美文网首页
微服务-Springcloud-dubbo

微服务-Springcloud-dubbo

作者: Wu杰语 | 来源:发表于2021-05-16 11:23 被阅读0次

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的强大之处。

  • rpc通信,spring cloud netflex默认支持的是http作为rpc。而dubbo可以从扩展点看到,从传输协议、序列化等支持的种类非常多,可以适用于多种场景。
  • dubbo支持多注册中心,注意不是多种注册中心,即同时可以使用多个注册中心。

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

小结

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

  • Spring boot是脚手架,是一种组合风格,Spring Cloud Netflex的设计哲学更加是一种组合风格,整体设计功能模块分解清晰,设计让人感觉优美。
  • 而Dubbo呢,通过一套扩展点框架,基本可以完成所有功能,这种设计让人感觉功能强大。特别是底层的通信设计

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

相关文章

  • 微服务-Springcloud-dubbo

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

  • 菜鸟带你看传说中的微信开发!

    1.微信开发原理微信客户端->微信服务器->开发绑定的服务器。微信开发步骤: 2.微信验证服务器原理(验证服务器的...

  • 胡健豪:如何运营微信矩阵

    微信矩阵是怎么回事,其实就是1个微信服务号+N个微信订阅号。微信服务号和订阅号的差别在于,服务号提供公司服务,订阅...

  • zabbix微信 | 微信对接自己服务器(2)

    上接使用微信告警 企业号微信对接自己服务器 1.本地服务器与微信服务器的信任 本地具有独立外网ip服务器获取微信服...

  • 微服务的微

    微服务的微,是指服务粒度的微么? 微服务可能是由此得名的。但在微服务架构思想中,服务粒度的微,不应该放在首要强调的...

  • 微信服务

    1.微信sdk 样例 http://demo.open.weixin.qq.com/jssdk/

  • 实战 Docker+Kubernetes 微服务容器化(一)-初

    1 微服务-导学 2 软件架构的进化 3 什么是微服务 多微才算微 微服务的特征 微服务诞生背景 4 画出微服务架...

  • SDtalk-10:阿里茶山服务设计实践-4

    2015年的茶山:服务设计微日记 《服务设计微日记》以微日记的故事写作形式,引用每天生活和工作的真实服务设计案例及...

  • 微服务应该具备的功能

    微服务应该具备的功能 >> 微服务应该具备的功能微服务,可以拆分为“微”和“服务”二字。“微”即小的意思,那到底多...

  • 微信开发——内网穿透

    微信开发需要与微信服务器交互,要保证微信服务器能向我们的服务器POST数据,我们的服务器需要能够在公网访问。这里简...

网友评论

      本文标题:微服务-Springcloud-dubbo

      本文链接:https://www.haomeiwen.com/subject/anyddltx.html