Spring Cloud & Spring Cloud Alibaba 介绍与安装
简介
Spring Cloud 为开发人员提供了一套工具,以快速构建分布式系统中的一些常见模式,例如,服务发现、配置管理、断路器、路由网关等。
Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案。此项目包含开发分布式应用服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务。依托 Spring Cloud Alibaba,您只需要添加一些注解和少量配置,就可以将 Spring Cloud 应用接入阿里分布式应用解决方案,通过阿里中间件来迅速搭建分布式应用系统。
特性
Spring Cloud 专注于为典型用例提供良好的开箱即用体验:
- 服务注册与发现
- 路由
- 服务调用
- 负载均衡
- 断路器
Spring Cloud Alibaba 提供了如下功能:
- 服务限流降级:支持 WebServlet、WebFlux、OpenFeign 限流降级功能的接入,可以在运行时通过控制台实时修改限流降级规则,还支持查看限流降级 Metrics 监控。
- 服务注册与发现:适配 Spring Cloud 服务注册与发现标准,默认集成了 Ribbon 的支持。
- 分布式配置管理:支持分布式系统中的外部化配置,配置更改时自动刷新。
- 分布式事务:使用 @GlobalTransactional 注解, 高效并且对业务零侵入地解决分布式事务问题。
版本说明
Spring Cloud Alibaba 是按照 Spring Cloud 编程模型来实现的,因此,我们可以通过 Spring Cloud Alibaba 的版本来确认 Spring Cloud 及 Spring Boot 的版本。
名称 | 版本 |
---|---|
Spring Cloud Alibaba | 2021.0.4.0 |
Spring Cloud | 2021.0.4 |
Spring Boot | 2.6.11 |
同时,我们也可以因此确认 Spring Cloud Alibaba 所适配的组件对应的版本:
组件 | 版本 |
---|---|
Sentinel | 1.8.5 |
Nacos | 2.1.0 |
Seata | 1.5.2 |
此外,Spring Boot 对 jdk、构建工具也有要求。Spring Boot 2.6.11 需要 Java 8,并且兼容到 Java 18,同时支持 Maven 3.5 及以上版本:
名称 | 要求版本 | 实际版本 |
---|---|---|
jdk | 8+ | 1.8.0_161 |
Maven | 3.5+ | 3.6.3 |
创建 Spring Cloud & Spring Cloud Alibaba 项目
现在您已经知道了要使用哪个版本系列以及该版本系列的最新服务版本。但是,为了更好的控制版本,我们可以手动的创建一个 Spring Boot 项目,这样创建的项目没有多余的东西,将更加清爽,一切都在我们的掌控中!
关于如何创建一个 Spring Boot 项目,请点击此处按“创建 Spring Boot 项目”一节中的说明操作。
现在您可以将 Spring Cloud BOM 添加到您的 pom.xml 中了。BOM 包含了它们所使用的所有依赖的版本。如果您是 Maven Central 用户,请将 BOM 添加到您的 pom.xml 中的 <dependencyManagement> 部分。 这将允许您省略任何 Maven 依赖项的版本,而是将版本控制委派给 BOM。
<properties>
<spring.cloud-version>2021.0.4</spring.cloud-version>
<spring.cloud.alibaba-version>2021.0.4.0</spring.cloud.alibaba-version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring.cloud-version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>${spring.cloud.alibaba-version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
就像 Spring Boot 一样,Spring Cloud & Spring Cloud Alibaba 项目包含了许多启动器,您可以将它们作为依赖添加到项目中,以添加各种云原生特性。在许多情况下,许多特性完全是通过将 starter 添加到类路径来启用的。启动器名称可参考各项目文档。
下面是如何将 Spring Cloud Gateway 添加到应用程序的示例:
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
...
</dependencies>
常用项目
Spring Cloud Gateway
Spring Cloud Gateway 是一款基于 Project Reactor 的可编程 API 路由网关。
Spring Cloud OpenFeign
Spring Cloud OpenFeign 通过自动配置和绑定到 Spring Environment 和其他 Spring 编程模型习惯用法,为 Spring Boot 应用程序提供集成。
Spring Cloud Alibaba Nacos
Nacos 是一个 Alibaba 开源的、易于构建云原生应用的动态服务发现、配置管理和服务管理平台。
Spring Cloud Alibaba Sentinel
Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。
Spring Cloud Alibaba Seata
Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。
实战
一个非常适合学习的 Spring Cloud 开源项目,欢迎 Fork:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!