SpringCloud概述

简介: Spring Cloud应微服务需求而生,提供统一解决方案,具备约定大于配置、组件丰富、开箱即用等特点。通过地铁站命名版本,避免子项目冲突。Spring Cloud Alibaba融合阿里实践,推出Nacos、Sentinel、Seata等优秀组件,弥补Netflix停更短板,成为主流选择。本节概述其演进、生态及技术选型依据,为后续实战奠基。(238字)

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自身的特点、版本号、依赖关系做了概要论述,这些都是为了接下来的实战打好基础。

相关文章
|
JavaScript Java 微服务
spring-cloud-alibaba 组件版本关系
spring-cloud-alibaba 组件版本关系
3007 0
|
9月前
|
SQL 人工智能 监控
SLS Copilot 实践:基于 SLS 灵活构建 LLM 应用的数据基础设施
本文将分享我们在构建 SLS SQL Copilot 过程中的工程实践,展示如何基于阿里云 SLS 打造一套完整的 LLM 应用数据基础设施。
2950 106
|
消息中间件 JSON Java
Spring Boot、Spring Cloud与Spring Cloud Alibaba版本对应关系
Spring Boot、Spring Cloud与Spring Cloud Alibaba版本对应关系
36211 1
|
负载均衡 IDE Java
SpringBoot整合XXL-JOB【04】- 以GLUE模式运行与执行器负载均衡策略
在本节中,我们将介绍XXL-JOB的GLUE模式和集群模式下的路由策略。GLUE模式允许直接在线上改造方法为定时任务,无需重新部署。通过一个测试方法,展示了如何在调度中心配置并使用GLUE模式执行定时任务。接着,我们探讨了多实例环境下的负载均衡策略,确保任务不会重复执行,并可通过修改路由策略(如轮训)实现任务在多个实例间的均衡分配。最后,总结了GLUE模式和负载均衡策略的应用,帮助读者更深入理解XXL-JOB的使用。
1135 9
SpringBoot整合XXL-JOB【04】-  以GLUE模式运行与执行器负载均衡策略
|
6月前
|
缓存 Java Docker
【Docker实战】如何写出“性感”的Dockerfile?从1GB瘦身到100MB的秘籍
本文介绍如何编写高效、安全的Dockerfile,以Java和Python为例,分享四大核心技巧:多阶段构建减小镜像体积,利用缓存加速构建,选用轻量基础镜像,配置.dockerignore忽略无用文件。助你打造小巧、快速、安全的容器镜像,提升部署效率与安全性。
|
Java
【Java系列】List数据去重的五种有效方法
目录 1:使用java8新特性stream进行List去重 (distinct()方法) 2,借助Set的特性进行去重(set和list转换去重) 3,遍历List集合,将元素添加到另一个List集合中 4,利用set集合特性保持顺序一致去重 5,使用list自身方法remove()–>不推荐 1:使用java8新特性stream进行List去重 (distinct()方法) public static List<String> delRepeat(Lis.
588 0
【Java系列】List数据去重的五种有效方法
|
SQL XML Java
MyBatis动态SQL解析原理
MyBatis是一个基于Java的持久层框架,它提供了强大的动态SQL解析功能。下面我们将深入解析MyBatis动态SQL解析的原理,并结合源码进行讲解。
888 0
|
JSON API 数据库
探索FastAPI:不仅仅是一个Python Web框架,更是助力开发者高效构建现代化RESTful API服务的神器——从环境搭建到CRUD应用实战全面解析
【8月更文挑战第31天】FastAPI 是一个基于 Python 3.6+ 类型提示标准的现代 Web 框架,以其高性能、易用性和现代化设计而备受青睐。本文通过示例介绍了 FastAPI 的优势及其在构建高效 Web 应用中的强大功能。首先,通过安装 FastAPI 和 Uvicorn 并创建简单的“Hello, World!”应用入门;接着展示了如何处理路径参数和查询参数,并利用类型提示进行数据验证和转换。
932 0
|
SQL Java 关系型数据库
mybatis-plus启动时自动执行sql脚本
mybatis-plus启动时自动执行sql脚本
586 1

热门文章

最新文章