SpringCloud概述

简介: Spring Cloud是Spring推出的微服务一站式解决方案,弥补了各技术分散、缺乏统一标准的痛点。它具备“约定优于配置”、组件丰富、开箱即用等特点,完美适配云原生架构。版本以地铁站命名(如Hoxton.SR12),避免与子项目版本冲突。其子项目涵盖服务注册、配置管理、负载均衡等全链路能力。随着Netflix套件停更,Spring Cloud Alibaba凭借Nacos、Sentinel、Seata等成熟组件成为主流选择,获官方认可,功能更完善,经大规模业务验证,成为微服务落地优选方案。

1.SpringCloud诞生
基于前面章节,我们深知微服务已成为当前开发的主流技术栈,但是如dubbo、zookeeper、nacos、rocketmq、rabbitmq、springboot、redis、es这般众多技术都只解决了一个或一类问题,微服务并没有一个统一的解决方案。开发人员或架构师想要做架构设计或系统拆分时,还需要深度调研技术选项。那么有没有一个技术可以一呼百应,做到一个彻底的解决方案呢?于是Spring团队推出了他们的微服务解决方案-Spring Cloud。
2.SpringCloud特点
作为一款优秀的微服务解决方案,其主要特点如下
约定大于配置
组件丰富,功能齐全
灵活,开箱即用,快速启动
完美适配云环境软件架构的云原生应用
3.SpringCloud版本
Spring-Cloud的github仓库:https://github.com/spring-cloud
大多数Spring项目版本号是:主版本号.次版本号.增量版本号.里程碑版本号,如Spring版本:4.3.1.RELEASE,其中主版本号标识重大重构,次版本号标识新特性调整,增量版本号一般标识bug-fix,里程碑则标识某版本号的里程碑,也可以没有。
Spring Cloud通过伦敦地铁站的形式进行命名,如下Hoxton.SR12(Hoxton:主版本号,SR:Service Release,X数字:次版本号)。
因为Spring Cloud是一个大综合性的项目,包含很多子项目,由于子项目也维护着自己的版本号,所以通过这种命名形式定义版本号,避免与子项目版本冲突。
更多Spring Cloud版本演进计划请移步:github里程碑仓库
4.SpringCloud子项目
https://spring.io/projects/spring-cloud#overview
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仓库:https://github.com/spring-cloud
浏览Spring Cloud官网:https://spring.io/projects/spring-cloud
截图软件:
xsnip_1.1.0.4.zip
(360 KB)

相关文章
|
11小时前
|
监控 算法 Unix
Thread.sleep(0) 到底有什么
Thread.Sleep用于让线程暂停执行一段时间,不参与CPU竞争。Sleep(1000)并不保证精确唤醒时间,因系统调度受优先级和资源影响;而Sleep(0)则触发系统立即重新分配CPU,给予其他线程执行机会,避免界面假死。理解其原理有助于优化多线程程序性能与响应性。
|
11小时前
|
监控 算法 Unix
Thread.sleep(0) 到底有什么用
Thread.Sleep用于让线程暂停执行一段时间,期间不参与CPU竞争。Sleep(1000)不保证精确唤醒时间,受系统调度影响;而Sleep(0)会触发系统立即重新分配CPU,给其他线程执行机会,避免界面假死。两者作用不可忽视。
|
11小时前
|
监控 算法 Unix
Thread.sleep(0) 到底有什么用(
Thread.Sleep用于让线程暂停执行一段时间,不参与CPU竞争。Sleep(1000)并不保证精确唤醒时间,因系统调度受优先级和线程状态影响;而Sleep(0)会触发系统立即重新分配CPU,给其他线程执行机会,避免界面假死。两者作用显著不同。
|
11小时前
|
监控 算法 Unix
Thread.sleep(0) 到底有什么用(读完就
Thread.Sleep用于暂停线程执行,Sleep(1000)不保证精确唤醒时间,因CPU可能被其他线程占用;Sleep(0)则触发系统立即重新进行CPU调度,给予其他线程执行机会,避免界面假死。两者均体现操作系统对线程优先级与调度的管理机制。
|
11小时前
|
监控 算法 Unix
Thread.sleep(0) 到底有什么用(读完
本简介旨在简要介绍所提供的内容,突出其核心要点与价值。通过精炼语言,概括主题思想,帮助读者快速理解主要内容,适用于推广、导读或信息传递场景,力求在240字符内清晰传达关键信息。
|
11小时前
|
监控 算法 Unix
Thread.sleep(0) 到底有什么用(读完就懂
本文深入解析 `Thread.Sleep` 的底层机制,结合操作系统调度原理,探讨其在多线程环境中的真实行为。通过“分蛋糕”类比,形象说明Windows抢占式调度的特点,澄清对 `Sleep(1000)` 和 `Sleep(0)` 的常见误解。重点指出:`Sleep(0)` 并非无意义,而是主动触发CPU重新竞争,让出执行机会,避免界面假死,具有重要实际价值。
|
11小时前
|
监控 算法 Unix
Thread.sleep(0) 到底有什么用(读完就懂)
Thread.Sleep用于让线程暂停执行一段时间,不参与CPU竞争。Sleep(1000)并不保证精确唤醒时间,因系统调度受优先级和资源影响;而Sleep(0)会触发立即重新分配CPU,让其他线程获得执行机会,避免界面假死。两者作用显著不同。
|
11小时前
|
存储 缓存 算法
零拷贝 你会如何实现文
实现文件传输时,传统方式因频繁系统调用导致大量上下文切换与内存拷贝,性能低下。零拷贝技术通过减少用户态与内核态切换、避免重复数据拷贝,显著提升效率。结合PageCache预读与大文件场景下的异步IO+直接IO策略,可优化不同规模文件的传输性能。
|
11小时前
|
缓存 算法 搜索推荐
线程池
线程池是将多个线程统一管理的“池化”技术,避免频繁创建销毁线程带来的开销。Java中通过`ExecutorService`和`ThreadPoolExecutor`等类实现,核心原理是复用线程、任务队列调度及合理的拒绝策略。`ScheduledThreadPoolExecutor`支持延时与周期性任务,基于`DelayedWorkQueue`实现延迟调度。`Executors`工厂类提供多种线程汛建造方法,如固定大小、缓存型、单线程等,适用于不同并发场景,提升系统性能与资源利用率。
|
11小时前
|
Java Sentinel 微服务
服务保护、分布式事务
本课程聚焦微服务保护核心技能,涵盖雪崩问题、熔断降级、限流隔离等机制,学习Sentinel实现熔断、降级、限流策略配置,掌握FallbackFactory降级逻辑编写,理解CAP原理与Seata分布式事务,全面提升微服务高可用设计能力。