【云原生】微服务架构SpringCloud和Dubbo的区别?
【摘要】 现在做技术开发都在转型微服务化架构、目前主要的选择就是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)