SpringCloud和Dubbo的区别有哪些?

SpringCloud和Dubbo的区别:

面向微服务的技术(SpringCloud)

Spring Cloud 抛弃了 Dubbo 的 RPC 通信,采用的是基于 HTTP 的 REST 方式。严格来说,这两种方式各有优劣。虽然从一定程度上来说,后者牺牲了服务调用的性能,但也避免了上面提到的原生 RPC 带来的问题。而且 REST 相比 RPC 更为灵活,服务提供方和调用方,不存在代码级别的强依赖,这在强调快速演化的微服务环境下显得更加合适。

最大的区别:

1、 Dubbo 底层是使用 Netty 这样的 NIO 框架,是基于 TCP 协议传输的,配合以 Hession 序列化完成 RPC 通信;
2、而 SpringCloud 是基于 Http 协议 +rest接口调用远程过程的通信,相对来说,Http 请求会有更大的报文,占的带宽也会更多。但是 REST相比 RPC 更为灵活,服务提供方和调用方的依赖只依靠一纸哭约,不存在代码级别的强依赖,这在强调快速演化的微服务环境下,显得更为合适,至于注重通信速度还是方便灵活性,具体情况具体考虑。

定位区别:

Dubbo 是 SOA 时代的产物,它的关注点主要在于服务的调用,流量分发、流量监控和熔断;而 Spring Cloud 诞生于微服务架构时代,考虑的是微服务治理的方方面面,另外由于依托 Spring、Spring Boot 的优势之上,两个框架在开始目标就不一致,Dubbo 定位服务治理、SpringCloud 是一个生态。因此可以大胆地判断,Dubbo 未来会在服务治理方面更为出色,而 SpringCloud 在微服务治理上面无人能敌。

模块区别:

1、Dubbo主要分为服务注册中心,服务提供者,服务消费者,还有管控中心;
2、相比起 Dubbo 简单的四个模块,SpringCloud 则是一个完整的分布式一站式框架,他有着一样的服务注册中心,服务提供者,服务消费者,管控台,断路器、分布式配置服务、消息总线,以及服务追踪等;

汇总区别:

Dubbo SpringCloud
服务注册中心 Zookeeper Spring Cloud Netflix Eureka
服务调用方式 RPC REST API
服务监控 Dubbo-monitor Spring Boot Admin
熔断器 不完善 Spring Cloud Netflix Hystrix
服务网关 Spring Cloud Netflix Eureka
分布式配置 Spring Cloud Netflix Zuul
服务跟踪 Spring Cloud Netflix Sleuth
数据流 Spring Cloud Netflix Stream
批量任务 Spring Cloud Netflix Task
信息总线 Spring Cloud Netflix Bus

提示:dubbo依赖注册中心,所以使用dubbo,需要提前搭建好注册中心。dubbo的环境搭建请参考博文:dubbo环境搭建

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_47061482/article/details/129715496