SpringCloud是什么
SpringCloud在英文意思是"云",常代指为分布式开发,是一套解决"三高"(高可用、高扩展、高并发)问题的组合拳。
让我们来看一下SpringCloud官方架构图:
可以看到SpringCloud由网关、注册中心、配置中心、服务相互之间调用、熔断限流、负载均衡、链路追踪等组件组成。
SpringCloud组件库选择
随着Netflix停止对Ribbon、Feign等微服务组件的开源支持,即使"千呼万唤始出来"的Zuul网关被开源发布,SpringCloud也已推出自家产品GateWay网关与之对抗,因为SpringCloud已经逐渐去"奈飞"化。 Netflix已经逐渐停止对微服务组件的开源支持,"旧王退去,新王加冕",SpringCloudAlibaba强势入驻SpringCloud开源社区,搭配SpringCloud,为微服务打出新的一套"组合拳"。
| 功能特性 | Alibaba组件库 | SpringCloud、第三方组件库 | Netflix组件库 |
|---|---|---|---|
| 服务治理 | ==Nacos== | Consul | Eureka |
| 负载均衡 | DubboLB | ==Loadbalancer== | Ribbon |
| 服务间调用 | Dubbo RPC | ==OpenFeign== | Feign |
| 服务容错 | ==Sentinel== | Resilience4j | Hystrix、Turbine |
| 服务网关 | Dubbo+ Servlet | ==Gateway== | Zuul |
| 分布式配置中心 | ==Nacos== | SpringCloud Config | Archaius |
| 消息总线 | SCB | Bus | - - |
| 分布式链路追踪 | - - | ==Sleuth+Zipkin、Skywalking== | - - |
| 分布式事务 | ==Seata== | - - | - - |
| 消息事件驱动 | ==RocketMQ== | RabbitMQ、Kafka | - - |
==标记部分为当前主流选择==
SpringCluod版本策略
2020年之前SpringCloud版本是用伦敦地铁站命名,后续则采用版本号命名,SpringCloud版本迭代基本一年更新一次。
- SNAPSHOT 版本:正在开发中的快照版本,更新频繁的小版本类型,不推荐在线上正式环境使用;
- Milestone 版本:在大版本正式发布前的里程碑版本,不推荐在正式项目中使用 Milestone 版本;
- Release Candidate 版本:这就是我们俗称的 RC 版,RC 主要目的是开放出来让大家试用并尽量修复严重 Bug。
- Release 版:稳定的正式发布版,比如 2020.0.1。你可以在自己的线上业务中放心使用 Release 稳定版。
SpringCluod与SpringBoot版本选择
浏览器访问Spring-Cloud-Boot,在返回的数据中找到spring-cloud即可以查看SpringCloud与SpringBoot版本对应关系。
资料参考:极客时间-姚秋辰老师:time.geekbang.org/column/intr…