(dubbo与springcloud区别)(dubbo为什么要使用注册中心)

两者都是现在主流的微服务框架,但却存在不少差异:

  • 初始定位不同:SpringCloud定位为微服务架构下的一站式解决方案;Dubbo 是 SOA 时代的产物,它的关注点主要在于服务的调用和治理
  • 生态环境不同:SpringCloud依托于Spring平台,具备更加完善的生态体系;而Dubbo一开始只是做RPC远程调用,生态相对匮乏,现在逐渐丰富起来。
  • 调用方式:SpringCloud是采用Http协议做远程调用,接口一般是Rest风格,比较灵活;Dubbo是采用Dubbo协议,接口一般是Java的Service接口,格式固定。但调用时采用Netty的NIO方式,性能较好。
  • 组件差异比较多,例如SpringCloud注册中心一般用Eureka,而Dubbo用的是Zookeeper

SpringCloud生态丰富,功能完善,更像是品牌机,Dubbo则相对灵活,可定制性强,更像是组装机。 相关资料:

SpringCloud:Spring公司开源的微服务框架,SpirngCloud 定位为微服务架构下的一站式解决方案。

Dubbo:阿里巴巴开源的RPC框架,Dubbo 是 SOA 时代的产物,它的关注点主要在于服务的调用,流量分发、流量监控和熔断

SpringCloud 和 Dubbo 先看一个区别表

Dubbo

SPRING CLOUD

服务器注册中心

Zookeeper

Spring Cloud Netflix Eureka

服务调用方式

RPC

REST API

服务监控

Dubbo-monitor

Spring Boot Admin

断路器

不完善

Spring Cloud Netflix Hystrix

服务网关

Spring Cloud Netflix Zuul

分布式配置

Spring Cloud Config

服务跟踪

Spring Cloud Sleuth

消息总线

Spring Cloud Bus

数据流

Spring Cloud Stream

批量任务

Spring Cloud Task

最大的区别 Dubbo采用自定义的Dubbo协议实现远程通信,是一种典型的RPC调用方案,而SpringCloud中使用的Feign是基于Rest风格的调用方式。

1)Rest风格

REST是一种架构风格,指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是 RESTful。

Rest的风格可以完全通过HTTP协议实现,使用 HTTP 协议处理数据通信。REST架构对资源的操作包括获取、创建、修改和删除资源的操作正好对应HTTP协议提供的GET、POST、PUT和DELETE方法。

因此请求和想要过程只要遵循http协议即可,更加灵活

SpringCloud中的Feign就是Rest风格的调用方式。

2)RPC

Remote Procedure Call,远程过程调用,就是像调用本地方法一样调用远程方法。 RPC一般要确定下面几件事情:

数据传输方式:多数RPC框架选择TCP作为传输协议,性能比较好。 数据传输内容:请求方需要告知需要调用的函数的名称、参数、等信息。 序列化方式:客户端和服务端交互时将参数或结果转化为字节流在网络中传输,那么数据转化为字节流的或者将字节流转换成能读取的固定格式时就需要进行序列化和反序列化 因为有序列化和反序列化的需求,因此对数据传输格式有严格要求,不如Http灵活

Dubbo协议就是RPC的典型代表。

Dubbo

Feign (Http调用)

传输协议

TCP

TCP

开发语言

Java

不限

性能

一般

灵活性

一般

声明:我要去上班所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流,版权归原作者Java机械师所有,原文出处。若您的权利被侵害,请联系删除。

本文标题:(dubbo与springcloud区别)(dubbo为什么要使用注册中心)
本文链接:https://www.51qsb.cn/article/dvjh7h.html

(0)
打赏微信扫一扫微信扫一扫QQ扫一扫QQ扫一扫
上一篇2023-07-24
下一篇2023-07-24

你可能还想知道

发表回复

登录后才能评论