SpringCloud(⼆):SpringCloud简介及与Dubbo的详细⽐较
Spring Cloud 作为⼀套微服务治理的框架,⼏乎考虑到了微服务治理的⽅⽅⾯⾯。
接下来就讲讲Spring Cloud
什么是Spring Cloud
Spring Cloud 是⼀套完整的微服务解决⽅案,基于Spring Boot框架,准确来说,它不是⼀个框架,⽽是⼀个⼤的容器,它将上⾯上较好的微服务框架集成进来,从⽽简化了开发者的代码量。
为什么需要Spring Cloud
Spring Cloud 是整个Spring家族中新的成员,要致⼒于分布式系统、云服务的框架。
Spring Cloud 为开发⼈员提供了快速构建分布式系统中⼀些常见模式的⼯具,例如:
1. 配置管理
2. 服务注册与发现
3. 断路器
4. 智能路由
5. 服务间调⽤
6. 负载均衡
7. 微代理
8. 控制总线
9. ⼀次性令牌
10. 全局锁
11. 领导选举
12. 分布式会话
13. 集状态
14. 分布式消息
⼀句话概括:Spring Cloud 是分布式微服务架构下的⼀站式解决⽅案,是各个微服务架构落地技术集合,俗称微服务全家桶。
微服务架构使⽤场景
⾸先,我们需要看看⼀般的微服务架构所需要功能或使⽤场景:
1. 我们把整个系统根据业务拆分成⼏个⼦系统。
2. 每个⼦系统可以部署多个应⽤,多个应⽤之间使⽤负载均衡。
3. 需要⼀个服务注册中⼼,所有的服务都在注册中⼼注册,负载均衡也是通过在注册中⼼注册的服务来使⽤⼀定策略来实现的。
4. 所有的客户端都通过同⼀个⽹管地址访问后台服务,通过路由配置,⽹关来判断⼀个URL请求由哪个服务来处理。请求转发到服务上
的时候也使⽤负载均衡。
5. 服务之间有时候也需要相互访问。例如有⼀个⽤户模块,其他服务在处理⼀些业务的时候,要获取⽤户服务的⽤户数据。
6. 需要⼀个断路器,及时处理服务调⽤时的超时和错误,防⽌由于其中⼀个服务的问题⽽导致整个系统的瘫痪。
7. 还需要⼀个监控功能,监控每个服务调⽤花费的时间等。
总体来说,Spring Cloud只是微服务架构的⼀种解决⽅案,下⾯我们在看看微服务架构同类产品⽐较。
SpringCloud与同类Dubbo微服务⽐较
⽬前市⾯上主要就是Spring Cloud VS Dubbo。
1. Spring Cloud的优缺点
Spring Cloud主要优点:
集⼤成者,Spring Cloud 包含了微服务架构的⽅⽅⾯⾯。
约定优于配置,基于注解,没有配置⽂件。
轻量级组件,Spring Cloud 整合的组件⼤多⽐较轻量级,且都是各⾃领域的佼佼者。
开发简便,Spring Cloud 对各个组件进⾏了⼤量的封装,从⽽简化了开发。
开发灵活,Spring Cloud的组件都是解耦的,开发⼈员可以灵活按需选择组件。
Spring Cloud的缺点:
项⽬结构复杂,每个组件或者每个服务都需要创建⼀个项⽬。
部署门槛⾼,项⽬部署需要配合Docker等容器技术进⾏集部署,⽽要想深⼊了解Docker,学习成本较⾼。
2. Spring Cloud 对⽐ Dubbo
Dubbo是阿⾥巴巴服务化治理的核⼼框架,并被⼴泛应⽤于阿⾥巴巴集团的各成员站点。
(1). 社区活跃度
在社区活跃度上,Spring Cloud⽏庸置疑的优于Dubbo,这对于没有⼤量精⼒和财⼒维护这部分开源内容的团队来说,Spring Cloud 会是更优
springcloud难学吗的选择。
(2). 架构完成度
上图可以看出,Spring Cloud⽐较全⾯,Spring Cloud下⾯有17个⼦项⽬(可能还会有新增)分布覆盖了微服务架构下的⽅⽅⾯⾯,服务治理只是其中的⼀个⽅⾯罢了。
⽽Dubbo 由于只实现了服务治理,需要继承其他模块,需要单独引⼊,增加了学习成本和集成成本。⼀定程度上来说,Dubbo只是Spring Cloud Netflix的⼀个⼦集。
(3). ⽂档质量
Dubbo的⽂档可以说在国内开源框架中算⼀流的,⾮常全了,并且讲解的⾮常深⼊,由于版本已经稳定不在更新,所以也不太会出现不⼀致的情况,另外提供了中⽂和英⽂两版本,对于国内开发者⽽⾔,阅读起来⽐较容易上⼿,这也是在国内更⽕些的原因。
SpringCloud由于整合了⼤量的组件,⽂档在体量上⾃然要⽐Dubbo多很多,⽂档内容上还算简洁清楚,但是更多是偏向整合,更深⼊的使⽤⽅法还是需要查看其整合组件的详细⽂档。另外由于Spring Cloud基于SpringBoot,很多例⼦相较于传统Spring应⽤要简单很多(因为⾃动化配置,很多内容都成了约定的默认配置),这对于刚接触的开发者可能会有些不适应,建议了解和学习Spring Boot之后再使⽤Spring Cloud,不然可能会出现很多的⼀知半解情况。
**总之:**虽然Spring Cloud 的⽂档量⼤,但如使⽤Dubbo去整合其他第三⽅组件,实际也要去阅读⼤量的第三⽅组件⽂档,所以在⽂档量上,我觉得区别不⼤。对于⽂档的质量来说,由于SpringCloud的迭代很快,难免会出现不⼀致情况,所以在质量上我认为Dubbo更好⼀些。⽽对于⽂档语⾔上,Dubbo⾃然对国内开发团队来说会更有优势。
以上就是对Spring Cloud的介绍。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论