• 欢迎访问 优知学院 请加入我们的架构交流分享群优知学院-架构师进阶
  • 坚持原创分享BAT面试+架构+CTO进阶干货!

阿里P8架构师谈:SpringClound简介,微服务架构,以及与Dubbo的详细比较

阿里P8架构师谈:SpringClound的特点和架构,以及同类微服务比较

什么是Spring Clound

Spring Cloud 是一套完整的微服务解决方案,基于 Spring Boot 框架,准确的说,它不是一个框架,而是一个大的容器,它将市面上较好的微服务框架集成进来,从而简化了开发者的代码量。

为什么需要Spring Clound

Spring Cloud 是整个 Spring 家族中新的成员,要致力于分布式系统、云服务的框架。

Spring Cloud 为开发人员提供了快速构建分布式系统中一些常见模式的工具,例如:

  1. 配置管理
  2. 服务注册与发现
  3. 断路器
  4. 智能路由
  5. 服务间调用
  6. 负载均衡
  7. 微代理
  8. 控制总线
  9. 一次性令牌
  10. 全局锁
  11. 领导选举
  12. 分布式会话
  13. 集群状态
  14. 分布式消息

一句话概括SpringCloud是分布式微服务架构下的一站式解决方案,是各个微服务架构落地技术集合,俗称微服务全家桶

微服务架构使用场景

首先,我们需要看看一般的微服务架构需要的功能或使用场景:

1、我们把整个系统根据业务拆分成几个子系统。

2、每个子系统可以部署多个应用,多个应用之间使用负载均衡。

3、需要一个服务注册中心,所有的服务都在注册中心注册,负载均衡也是通过在注册中心注册的服务来使用一定策略来实现。

4、所有的客户端都通过同一个网关地址访问后台的服务,通过路由配置,网关来判断一个URL请求由哪个服务处理。请求转发到服务上的时候也使用负载均衡。

5、服务之间有时候也需要相互访问。例如有一个用户模块,其他服务在处理一些业务的时候,要获取用户服务的用户数据。

6、需要一个断路器,及时处理服务调用时的超时和错误,防止由于其中一个服务的问题而导致整体系统的瘫痪。

7、还需要一个监控功能,监控每个服务调用花费的时间等。

总之,Spring Clound只是微服务架构的一种解决方案,下面我们再看看微服务架构同类产品比较。

SpringClound与同类Dubbo微服务比较

目前市面上主要就是SpringClound VS Dubbo。

1.Spring Clound的优缺点

Spring Clound主要优点:

  • 集大成者,Spring Cloud 包含了微服务架构的方方面面。
  • 约定优于配置,基于注解,没有配置文件。
  • 轻量级组件,Spring Cloud 整合的组件大多比较轻量级,且都是各自领域的佼佼者。
  • 开发简便,Spring Cloud 对各个组件进行了大量的封装,从而简化了开发。
  • 开发灵活,Spring Cloud 的组件都是解耦的,开发人员可以灵活按需选择组件。

Spring Clound的缺点:

  • 项目结构复杂,每一个组件或者每一个服务都需要创建一个项目。
  • 部署门槛高,项目部署需要配合 Docker 等容器技术进行集群部署,而要想深入了解 Docker,学习成本高。

2.Spring Clound 对比Dubbo

Dubbo,是阿里巴巴服务化治理的核心框架,并被广泛应用于阿里巴巴集团的各成员站点。

1)社区活跃度

在社区活跃度上,Spring Cloud毋庸置疑的优于Dubbo,这对于没有大量精力与财力维护这部分开源内容的团队来说,Spring Cloud会是更优的选择。

2)架构完整度

阿里P8架构师谈:SpringClound的特点和架构,以及同类微服务比较

上图可以看出,Spring Cloud 比较全面,Spring Cloud下面有17个子项目(可能还会新增)分别覆盖了微服务架构下的方方面面,服务治理只是其中的一个方面。

而 Dubbo 由于只实现了服务治理,需要集成其他模块,需要单独引入,增加了学习成本和集成成本。一定程度来说,Dubbo只是Spring Cloud Netflix中的一个子集。

3)文档质量

Dubbo的 文档 可以说在国内开源框架中算是一流的,非常全,并且讲解的也非常深入,由于版本已经稳定不再更新,所以也不太会出现不一致的情况,另外提供了中文与英文两种版本,对于国内开发者来说,阅读起来更加容易上手,这也是dubbo在国内更火一些的原因吧。

Spring Cloud由于整合了大量组件,文档在体量上自然要比dubbo多很多,文档内容上还算简洁清楚,但是更多的是偏向整合,更深入的使用方法还是需要查看其整合组件的详细文档。另外由于Spring Cloud基于Spring Boot,很多例子相较于传统Spring应用要简单很多(因为自动化配置,很多内容都成了约定的默认配置),这对于刚接触的开发者可能会有些不适应,比较建议了解和学习Spring Boot之后再使用Spring Cloud,不然可能会出现很多一知半解的情况。

总之:虽然Spring Cloud的文档量大,但是如果使用Dubbo去整合其他第三方组件,实际也是要去阅读大量第三方组件文档的,所以在文档量上,我觉得区别不大。对于文档质量,由于Spring Cloud的迭代很快,难免会出现不一致的情况,所以在质量上我认为Dubbo更好一些。而对于文档语言上,Dubbo自然对国内开发团队来说更有优势。

3.对比总结

通过上面再几个环节上的分析,相信大家对Dubbo和Spring Cloud有了一个初步的了解。

就我个人对这两个框架的使用经验和理解,打个不恰当的比喻:

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

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


以上就是Spring Clound的介绍,后续详解SpringClound的架构设计和实践步骤。

阿里P8架构师谈:SpringClound的特点和架构,以及同类微服务比较

本文标题:阿里P8架构师谈:SpringClound简介,微服务架构,以及与Dubbo的详细比较
转载请保留页面地址:http://youzhixueyuan.com/spring-clound-from-entry-to-mastery.html
喜欢 (12)
[mike.r.chen@163.com]
分享 (0)
优知学院陈睿
关于作者:
优知学院创始人,13年互联网从业经验,资深架构设计经验,曾就职于淘宝、盛大、百度、携程,历程高级研发工程师、架构师、研发经理、事业部CTO。
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址