SpringCloud与Dubbo的区别hanease

1.SpringCloud与Dubbo的区别两者都是现在主流的微服务框架,但却存在不少差异:

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

SpringCloudAlibaba

SpringCloud的功能很明显比Dubbo更加强大,涵盖面更广,而且作为Spring的旗舰项目,它也能够与SpringFramework、SpringBoot、SpringData、SpringBatch等其他Spring项目完美融合,这些对于微服务而言是至关重要的。

使用Dubbo构建的微服务架构就像组装电脑,各环节选择自由度很高,但是最终结果很有可能因为一条内存质量不行就点不亮了,总是让人不怎么放心,但是如果使用者是一名高手,那这些都不是问题。

而SpringCloud就像品牌机,在SpringSource的整合下,做了大量的兼容性测试,保证了机器拥有更高的稳定性,但是如果要在使用非原装组件外的东西,就需要对其基础原理有足够的了解。

Dubbo框架默认采用Dubbo自定义通信协议,与Http协议一样底层都是TCP通信。但是Dubbo协议自定义了Java数据序列化和反序列化方式、数据传输格式,因此Dubbo在数据传输性能上会比Http协议要好一些。

不过这种性能差异除非是达极高的并发量级,否则无需过多考虑。

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

1)Rest风格

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

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

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

2)RPC

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

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

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

我们看看Dubbo协议和Feign的调用区别:

3.Eureka和Zookeeper注册中心的区别SpringCloud和Dubbo都支持多种注册中心,不过目前主流来看SpringCloud用Eureka较多,Dubbo则以Zookeeper为主。两者存在较大的差异:

从集群设计来看:Eureka集群各节点平等,没有主从关系,因此可能出现数据不一致情况;ZK为了满足一致性,必须包含主从关系,一主多从。集群无主时,不对外提供服务CAP原则来看:Eureka满足AP原则,为了保证整个服务可用性,牺牲了集群数据的一致性;而Zookeeper满足CP原则,为了保证各节点数据一致性,牺牲了整个服务的可用性。服务拉取方式来看:Eureka采用的是服务主动拉取策略,消费者按照固定频率(默认30秒)去Eureka拉取服务并缓存在本地;ZK中的消费者首次启动到ZK订阅自己需要的服务信息,并缓存在本地。然后监听服务列表变化,以后服务变更ZK会推送给消费者。4.SpringCloud中的常用组件有哪些?SpringCloud的子项目很多,比较常见的都是Netflix开源的组件:

SpringCloudConfig集中配置管理工具,分布式系统中统一的外部配置管理,默认使用Git来存储配置,可以支持客户端配置的刷新及加密、解密操作。

SpringCloudNetflixNetflixOSS开源组件集成,包括Eureka、Hystrix、Ribbon、Feign、Zuul等核心组件。

SpringCloudConsul基于HashicorpConsul的服务治理组件。

SpringCloudSleuthSpringCloud应用程序的分布式请求链路跟踪,支持使用Zipkin、HTrace和基于日志(例如ELK)的跟踪。

SpringCloudTask用于快速构建短暂、有限数据处理任务的微服务框架,用于向应用中添加功能性和非功能性的特性。

SpringCloudZookeeper基于ApacheZookeeper的服务治理组件。

SpringCloudGatewayAPI网关组件,对请求提供路由及过滤功能。

5.微服务调用关系复杂,如何做监控和错误排查?企业中对于微服务监控有一套东西,叫做APM。比如:SpringCloudSeluth+Zipkin,Pinpoint、Skywalking,可以实现性能监控、链路跟踪(精确到某个代码,某条sql)、CPU运行情况,链路运行耗时。

当然,还可以借助于分布式日志管理系统。把项目运行的日志收集,形成统计报表,放入elasticsearch,便于搜索查看。比如:ELK技术栈、GrayLog

6.Hystix的作用是什么?Hystix是Netflix开源的一个延迟和容错库,用于隔离访问远程服务、第三方库,防止出现级联失败。比较常用的手段就是线程隔离和服务熔断。————————————————

一.SpringCloud

1.简介

2.组织架构

springcloud子项目包括:

SpringCloudConfig:配置管理开发工具包,可以让你把配置放到远程服务器,目前支持本地存储、Git以及Subversion。

SpringCloudBus:事件、消息总线,用于在集群(例如,配置变化事件)中传播状态变化,可与SpringCloudConfig联合实现热部署。

SpringCloudNetflix:针对多种Netflix组件提供的开发工具包,其中包括Eureka、Hystrix、Zuul、Archaius等。

NetflixEureka:云端负载均衡,一个基于REST的服务,用于定位服务,以实现云端的负载均衡和中间层服务器的故障转移。

NetflixHystrix:容错管理工具,旨在通过控制服务和第三方库的节点,从而对延迟和故障提供更强大的容错能力。

NetflixZuul:边缘服务工具,是提供动态路由,监控,弹性,安全等的边缘服务。

NetflixArchaius:配置管理API,包含一系列配置管理API,提供动态类型化属性、线程安全配置操作、轮询框架、回调机制等功能。

SpringCloudforCloudFoundry:通过Oauth2协议绑定服务到CloudFoundry,CloudFoundry是VMware推出的开源PaaS云平台。

SpringCloudSleuth:日志收集工具包,封装了Dapper,Zipkin和HTrace操作。

SpringCloudDataFlow:大数据操作工具,通过命令行方式操作数据流。

SpringCloudSecurity:安全工具包,为你的应用程序添加安全控制,主要是指OAuth2。

SpringCloudConsul:封装了Consul操作,consul是一个服务发现与配置工具,与Docker容器可以无缝集成。

SpringCloudZookeeper:操作Zookeeper的工具包,用于使用zookeeper方式的服务注册和发现。

SpringCloudStream:数据流操作开发包,封装了与Redis,Rabbit、Kafka等发送接收消息。

SpringCloudCLI:基于SpringBootCLI,可以让你以命令行方式快速建立云组件。

3.特点

1)约定优于配置

2)开箱即用,快速开启

3)适用于各种环境

4)轻量级的组件

5)组件支持丰富,功能齐全

二.Dubbo

Dubbo框架设计一共划分了10个层:

配置层(Config):对外配置接口,以ServiceConfig和ReferenceConfig为中心。

服务代理层(Proxy):服务接口透明代理,生成服务的客户端Stub和服务器端Skeleton。

服务注册层(Registry):封装服务地址的注册与发现,以服务URL为中心。

集群层(Cluster):封装多个提供者的路由及负载均衡,并桥接注册中心,以Invoker为中心。

远程调用层(Protocol):封将RPC调用,以Invocation和Result为中心,扩展接口为Protocol、Invoker和Exporter。

信息交换层(Exchange):封装请求响应模式,同步转异步,以Request和Response为中心。

网络传输层(Transport):抽象mina和netty为统一接口,以Message为中心。

1)连通性

注册中心负责服务地址的注册与查找,相当于目录服务,服务提供者和消费者只在启动时与注册中心交互,注册中心不转发请求,压力较小

注册中心,服务提供者,服务消费者三者之间均为长连接,监控中心除外

注册中心通过长连接感知服务提供者的存在,服务提供者宕机,注册中心将立即推送事件通知消费者

注册中心和监控中心全部宕机,不影响已运行的提供者和消费者,消费者在本地缓存了提供者列表

注册中心和监控中心都是可选的,服务消费者可以直连服务提供者

2)健状性

监控中心宕掉不影响使用,只是丢失部分采样数据

数据库宕掉后,注册中心仍能通过缓存提供服务列表查询,但不能注册新服务

注册中心对等集群,任意一台宕掉后,将自动切换到另一台

注册中心全部宕掉后,服务提供者和服务消费者仍能通过本地缓存通讯

服务提供者无状态,任意一台宕掉后,不影响使用

服务提供者全部宕掉后,服务消费者应用将无法使用,并无限次重连等待服务提供者恢复

3)伸缩性

注册中心为对等集群,可动态增加机器部署实例,所有客户端将自动发现新的注册中心

服务提供者无状态,可动态增加机器部署实例,注册中心将推送新的服务提供者信息给消费者

4)升级性

当服务集群规模进一步扩大,带动IT治理结构进一步升级,需要实现动态部署,进行流动计算,现有分布式服务架构不会带来阻力。

THE END
1.什么是android的四大组件嘉兴雷鸟软件科技有限公司是专注于提供软件外包、手机APP开发、微信公众号开发、商城网站开发、企业软件定制、政府信息化等综合型互联网方案,APP开发服务包括IOS开发、安卓开发、平板Pad开发;为顾客提供软件定制开发、微信开发、商城网站开发一站式解决方案服务。http://www.lei-niao.com/news_407.html
2.绵山悬空栈道在哪一站下车车友交流懂车帝提供绵山悬空栈道在哪一站下车的车友交流详细内容,懂车帝是一个汽车资讯平台,懂车更懂你。我们提供最新汽车报价,汽车图片,汽车价格大全,行情、评测、导购等内容,看车选车买车就上懂车帝。https://www.dongchedi.com/tag/ugc/12875108
3.上海市育鹰学校“基于“基于教学改革融合信息技术的新型教与学...4、一站式服务支撑,助推因材施教 实现各类业务系统间基于数据中心的数据融通,建立个性化的学生画像,辅助教师开展个性化学习支持和教学指导,促进学生综合素质提升。 二、成果应用效果、推广设想、可持续发展情况 1、预期成果如下: 1)学校信息化三年发展规划一个 ...http://www.yuying.edu.sh.cn/info/1076/8592.htm
1.初阶数据结构5栈栈的概念:栈是一种只能在一端进行数据的删除或增加的一种线性表,它的物理结构不一定是线性的。进入数据或删除数据的一端称为栈顶,另一端称为栈底。增加(进入)数据的过程称为进栈(压栈),删除数据的过程称为出栈。如图所示: 什么数据也没有就称为空栈,如图所示: ...https://blog.csdn.net/2401_83009236/article/details/143805232
2.LinuxC编程一站式学习勤于思考.本书尽最大努力理清概念之间的依赖关系,力求一站式学习,读者不需要为了 找一个概念的定义去翻其它书,也不需要为了搞清楚一个概念在本书中前后一通乱翻,只 需从前到后按顺序学习即可.但一站式学习并不等于傻瓜式学习,有些章节有一定的难 度,需要积极思考才能领会.本书可以替你节省时间,但不能替你...http://staff.ustc.edu.cn/~guoyan/os12/LinuxC.pdf?eqid=872ddca70000a53b0000000464740f10
3.开源模型还是商业模型?阿里云智能张翅提出金融企业选择大模型的6大挑...在《全域数据“观”》一书中,我们曾断言:“数据的下一站是智能,数据最终会走向与业务系统的数智融合”,数据消费正在由“人”变成“系统”。未来数据技术将与云原生和智能化全面融合,形成“云数智一体化”服务。云原生技术栈,为企业带来了资源弹性、异构算力、容器和微服务等技术手段,为业务创新和系统建设提供了高效...http://finance.sina.com.cn/roll/2024-05-27/doc-inawsceu2479379.shtml
4.学习springcloudalibaba之前要学习springcloud吗学springcloud...Dubbo这一套方案并不完善 3. Spring Cloud Alibaba 最新的一站式解决方案!更简单 1. 注册中心:Nacos 2. 熔断:Sentinel 3. 网关:GetWay 新概念: 服务网格~Server Mesh 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ...https://blog.51cto.com/u_12228/10153861
5.一站式数字化营销宜昌数字化营销数字人视频矩阵宜昌臻岛信息技术有限公司是珍岛集团T云宜昌运营中心,为中小微企业提供宜昌数字化营销实施方案,T云产品包括网站小程序制作,云引擎智能推广,覆盖80%流量平台的在线商机,电子名片,数字人视频矩阵,短视频AI制作,BI决策,AI臻图臻文,新浪,搜狐,网易,腾讯新闻发布,企业口碑,再营销https://www.zdtyun.com/
6.数据库系列报告开篇:技术路径复盘及展望演进方向一:多模数据库。数据模型繁复、多系统运维带来难题,企业开始寻求技术栈收敛的一站式解决方案。企业在数字化转型早期,会选择一些核心的、成熟的场景进行单点数据库部署。但随着业务发展、场景变迁,企业面对多样化的数据来源,需要配合多种数据存储模型进行管理。使用多种单模型数据库将会导致数据冗余、数据一致性治...https://research.cicc.com/frontend/recommend/detail?id=2640
7.美军联合信息环境(JIE)启示和综述简单地说,传输型CDS其实就是网闸和光闸这类隔离交换产品;访问型CDS则是多网切换和跨网终端类产品;多级型CDS则是包含访问CDS和传输CDS能力的一站式CDS(这种产品非常罕见)。 4、CDS的基础理论 CDS使用了两种安全理论模型:MILS(多独立级别安全)和MLS(多级安全)。其中,访问CDS基于MILS架构;多级CDS基于MLS架构。 https://www.secrss.com/articles/17467
8.数据仓库与数据湖与湖仓一体:概述及比较腾讯云开发者社区数据湖仓一体提供的独特功能越来越模糊了两种结构之间的界限。Presto 和 Spark 技术引入了高性能 SQL,在数据湖上提供近乎交互式的速度。这一创新为数据湖直接服务分析和探索创造了可能性,无需汇总到传统数据仓库中。 Parquet 等文件格式为数据湖表引入了更严格的架构,并采用列式格式来提高查询效率。为了进一步缩小差距...https://cloud.tencent.com/developer/article/2409056
9.袋鼠云数栈DTinsight和药融云哪个好有什么区别优缺点药融云是一家生物医药大数据一站式检索平台,其目的是为全球生物医药行业的专业人员提供高效、精准的搜索服务,帮助他们更好地获取所需信息、快速掌握动态,为未来的研究和发展提供支持。药融云平台主要包含以下模块:药物化学、药理学、生物学、化学生物学、基因组学、药物代谢和药动学、生物技术、临床研究等。药融云还提...https://www.36dianping.com/vs/jvy8.html
10.云开发支付宝云开发结合COCOS一站式小游戏开发语言开发语言,这样很多情况下可以做到下游戏前后端一栈式开发,简化游戏开发者技术栈要求。支付宝云开发...https://open.alipay.com/portal/forum/post/132401037