1.SpringCloud诞生
基于前面章节,我们深知微服务已成为当前开发的主流技术栈,但是如dubbo、zookeeper、nacos、rocketmq、rabbitmq、springboot、redis、es这般众多技术都只解决了一个或一类问题,微服务并没有一个统一的解决方案。开发人员或架构师想要做架构设计或系统拆分时,还需要深度调研技术选项。那么有没有一个技术可以一呼百应,做到一个彻底的解决方案呢?于是Spring团队推出了他们的微服务解决方案-Spring Cloud。
2.SpringCloud特点
作为一款优秀的微服务解决方案,其主要特点如下
- 约定大于配置
- 组件丰富,功能齐全
- 灵活,开箱即用,快速启动
- 完美适配云环境软件架构的云原生应用
3.SpringCloud版本
Spring-Cloud的github仓库:Spring Cloud · GitHub
大多数Spring项目版本号是:主版本号.次版本号.增量版本号.里程碑版本号,如Spring版本:4.3.1.RELEASE,其中主版本号标识重大重构,次版本号标识新特性调整,增量版本号一般标识bug-fix,里程碑则标识某版本号的里程碑,也可以没有。
Spring Cloud通过伦敦地铁站的形式进行命名,如下Hoxton.SR12(Hoxton:主版本号,SR:Service Release,X数字:次版本号)。
因为Spring Cloud是一个大综合性的项目,包含很多子项目,由于子项目也维护着自己的版本号,所以通过这种命名形式定义版本号,避免与子项目版本冲突。
- 更多Spring Cloud版本演进计划请移步:github里程碑仓库
4.SpringCloud子项目
Spring Cloud
5.SpringCloud/SpringBoot版本兼容关系
6.SpringCloud Alibaba诞生
随着淘系业务的发展,阿里巴巴内部针对Spring Cloud做了自身吸收后,也贡献出优秀的Spring Cloud Alibaba解决方案,应运而生孵化出如Nacos这般优秀的中间件,并被Spring Cloud官方认可。至此Spring Cloud作为微服务解决方案的实际落地场景得到了更为强有力的论证,落地方案也就清晰明了
技术 | Spring Cloud官方套件或第三方套件 | Alibaba套件 | Netflix套件 |
服务注册与服务发现 | Consul、Zookeeper | Nacos | Eureka |
配置中心 | Spring Cloud Config | Nacos | |
服务通信 | Open Feign | Dubbo | Feign |
负载均衡器 | Loadbalancer | Ribbon | |
服务网关 | Spring Cloud Gateway | Zuul | |
断路器 | Resilience4j | Sentinel | Hystrix |
链路追踪 | Spring Cloud Sleuth、Zipkin | ||
分布式事务 | Seata |
Spring Cloud Alibaba提供的核心组件如下:
- Sentinel:阿里开源产品,可作为断路器,也支持流量控制和服务降级。
- Nacos:阿里开源产品,服务注册与服务发现,同时也可作为配置中心。
- RocketMQ:阿里开源的分布式消息和流计算平台。
- Dubbo:阿里开源产品,高性能Java RPC框架,服务通信组件。
- Seata:阿里开源产品,一个易使用的高性能微服务分布式事务解决方案。
7.为什么选择SpringCloud Alibaba
基于上述描述,读者应该会发现SpringCloud可以选择Alibaba或Netflix套件整合出一套完整解决方案。然后Netflix由于种种原因退出了维护更新的舞台,后续SpringCloud也逐步将其提供的组件一一剔除。
依附着阿里2015-2020的黄金飞速发展,Alibaba与Spring Cloud社区的强强联合,更多、更为全面的解决方案经过无数次的验证是真实可行的,同时阿里提供的开源产品保证了SpringCloud的功能又得到了进一步的补充。
所以最终我们也将选择SpringCloud Alibaba作为技术栈进行学习和演练。
8.总结
本节笔者介绍了SpringCloud诞生的由来,以及目前国内主要流行的SpringCloud Alibaba与SpringCloud的关系,同时针对SpringCloud自身的特点、版本号、依赖关系做了概要论述,这些都是为了接下来的实战打好基础。
思考问题
- SpringCloud特性?
- SpringCloud Alibaba与SpringCloud什么关系?
9.推荐阅读资料
- 浏览Spring Cloud仓库:Spring Cloud · GitHub
- 浏览Spring Cloud官网:https://spring.io/projects/spring-cloud