【云原生】微服务架构SpringCloud和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都提供了相应的解决方案。
- 点赞
- 收藏
- 关注作者
评论(0)