【云原生】微服务架构SpringCloud和Dubbo的区别?

举报
Java李杨勇 发表于 2022/07/31 10:37:34 2022/07/31
【摘要】 现在做技术开发都在转型微服务化架构、目前主要的选择就是Dubbo和SpringCloud、Dubbodubbo启动流程图先说说Dubbo吧!Dubbo是基于Tcp协议、是阿里巴巴开源的分布式服务治理框架,出现的时间比Spring Cloud早,并且当时国内在这方面并未成熟,因此很多团队在做服务化改造的时候都采用了Dubbo,比如当当、搜狐这些大公司。从这方面来讲Dubbo对中国的很多开发团队...

现在做技术开发都在转型微服务化架构、目前主要的选择就是Dubbo和SpringCloud、

Dubbo


dubbo启动流程图

先说说Dubbo吧!Dubbo是基于Tcp协议、是阿里巴巴开源的分布式服务治理框架,出现的时间比Spring Cloud早,并且当时国内在这方面并未成熟,因此很多团队在做服务化改造的时候都采用了Dubbo,比如当当、搜狐这些大公司。从这方面来讲Dubbo对中国的很多开发团队影响还是挺深的,虽然我们公司目前用的是SpringCloud、但自己也会参考合学习Dubbo的实现。看一些相关视频和书籍、如果想学习Dubbo建议可以自己去B站等看看视频或自己购买书籍系统的学习一下,

Dubbo主要的核心部分就是

远程通讯:提供对多种基于长连接的NIO框架抽象封装,包括多种线程模型,序列化,以及“请求-响应”模式的信息交换方式。
集群容错:提供基于接口方法的透明远程过程调用,包括多协议支持,以及负载均衡,失败容错,地址路由,动态配置等集群支持。
自动发现:基于注册中心目录服务,使服务消费方能动态的查找服务提供方,使地址透明,使服务提供方可以平滑增加或减少机器。

Spring Cloud

而Spring Cloud是目前微服务架构领域的翘楚、基于HTTP协议实现、微服务的领域涵盖以及现在整体的使用率都要比Dubbo要广、可以看下官网Spring Cloud列出的主要核心功能点

主要对比

Dubbo 只是实现了服务治理,而 Spring Cloud 实现了微服务架构很多功能、通过下图比较

 其中配置管理Dubbo是不具备的,不过可以借助Zookeeper来实现,但是不推荐。Spring Cloud提供的方案是Spring Cloud Config,再加上Spring Cloud Bus可以实现配置的广播动态刷新。

服务注册和发现作为基础的能力Dubbo是有的,默认大概提供了zookeeper,广播,redis等几种。Spring Cloud在这块也有多个方案,比如Spring Cloud Consul。

路由和负载均衡Dubbo默认提供了几种方式,可以扩展。Spring Cloud同样有ribbon和zuul,其实现的路由和负载功能更强大,其中也包括了授权、安全、服务质量监控等。

服务调用Dubbo使用了私有的Dubbo TCP协议,SpringCloud是HTTP。

断路器这块Dubbo提供的比较简单,SpringCloud借助Spring Cloud hystrix实现了复杂的服务级别可用性,比如服务隔离、熔断、恢复、降级等,同时提供了可视化的监控。

至于后面的全局锁、leader选举、分布式消息等等Dubbo是不提供的,Spring Cloud都提供了相应的解决方案。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。