Project Icon

spring-cloud-alibaba

分布式应用开发的全方位框架

Spring Cloud Alibaba是一个综合性的分布式应用开发框架,集成了开发所需的核心组件。它简化了Spring Cloud应用与阿里巴巴分布式解决方案的对接过程,只需少量配置即可构建完整的分布式系统。该框架提供流量控制、服务降级、注册发现、配置管理、事件驱动等关键功能,为开发者提供全面的技术支持。

Spring Cloud Alibaba

CircleCI Maven Central License actions Leaderboard

这是一个由阿里巴巴维护的项目。

中文版文档请参阅中文文档

Spring Cloud Alibaba为分布式应用开发提供了一站式解决方案。它包含了开发分布式应用所需的所有组件,使您能够轻松地使用Spring Cloud开发应用。

使用Spring Cloud Alibaba,您只需添加一些注解和少量配置,就可以将Spring Cloud应用连接到阿里巴巴的分布式解决方案,并使用阿里巴巴中间件构建分布式应用系统。

特性

  • 流量控制与服务降级:默认支持HTTP服务的流量控制。您还可以使用注解自定义流量控制和服务降级规则。这些规则可以动态更改。
  • 服务注册与发现:服务可以注册,客户端可以使用Spring管理的Bean发现实例。负载均衡与相应的Spring Cloud支持保持一致。
  • 分布式配置:支持分布式系统中的外部化配置,当配置发生变化时自动刷新。
  • 事件驱动:支持构建与共享消息系统连接的高度可扩展的事件驱动微服务。
  • 分布式事务:支持高性能且易于使用的分布式事务解决方案。
  • 阿里云对象存储:海量、安全、低成本、高可靠的云存储服务。支持在任何应用、任何时间、任何地点存储和访问任何类型的数据。
  • 阿里云SchedulerX:精确、高可靠、高可用的定时任务调度服务,响应时间在秒级内。
  • 阿里云短信服务:覆盖全球的消息服务,阿里云短信服务提供便捷、高效、智能的通信能力,帮助企业快速联系客户。

更多特性请参阅Roadmap

除了上述特性外,为满足企业用户的场景需求,Spring Cloud Alibaba的企业版微服务引擎MSE提供了企业级微服务治理中心,包括更强大的治理能力,如灰度发布、服务预热、无损上下线和异常实例摘除。同时,还提供了多种产品和解决方案,如企业级Nacos注册/配置中心、企业级云原生网关等。

组件

Sentinel:Sentinel以"流量"为切入点,提供流量控制、并发、熔断、负载保护等解决方案,保障服务的稳定性。

Nacos:一个易于使用的动态服务发现、配置和服务管理平台,用于构建云原生应用。

RocketMQ:一个具有低延迟、高性能和可靠性、万亿级容量和灵活可扩展性的分布式消息和流式平台。

Seata:一个易于使用的高性能微服务架构分布式事务解决方案。

阿里云OSS:一种加密安全的云存储服务,可在全球任何地方存储、处理和访问海量数据。

阿里云短信服务:覆盖全球的消息服务,阿里云短信服务提供便捷、高效、智能的通信能力,帮助企业快速联系客户。

阿里云SchedulerX:精确、高可靠、高可用的定时任务调度服务,响应时间在秒级内。

更多特性请参阅Roadmap

如何构建

  • 2023.x 分支: 对应 Spring Cloud 2023 和 Spring Boot 3.2.x,支持 JDK 17 或更高版本。
  • 2022.x 分支: 对应 Spring Cloud 2022 和 Spring Boot 3.0.x,支持 JDK 17 或更高版本。
  • 2021.x 分支: 对应 Spring Cloud 2021 和 Spring Boot 2.6.x,支持 JDK 1.8 或更高版本。
  • 2020.0 分支: 对应 Spring Cloud 2020 和 Spring Boot 2.4.x,支持 JDK 1.8 或更高版本。
  • 2.2.x 分支: 对应 Spring Cloud Hoxton 和 Spring Boot 2.2.x,支持 JDK 1.8 或更高版本。
  • greenwich 分支: 对应 Spring Cloud Greenwich 和 Spring Boot 2.1.x,支持 JDK 1.8 或更高版本。
  • finchley 分支: 对应 Spring Cloud Finchley 和 Spring Boot 2.0.x,支持 JDK 1.8 或更高版本。
  • 1.x 分支: 对应 Spring Cloud Edgware 和 Spring Boot 1.x,支持 JDK 1.7 或更高版本。

Spring Cloud 使用 Maven 进行大多数构建相关活动,您可以通过克隆感兴趣的项目并输入以下命令快速开始:

./mvnw install

如何使用

添加 Maven 依赖

这些构件可通过 BOM 从 Maven 中央仓库和 Spring 发布仓库获得:

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-alibaba-dependencies</artifactId>
            <version>2023.0.1.0</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

dependencies 中添加模块。如果想选择旧版本,可以参考版本说明

示例

我们的项目中包含了一个 spring-cloud-alibaba-examples 模块,帮助您快速上手 Spring Cloud Alibaba。它包含一个示例,您可以参考示例项目中的 readme 文件快速了解。

示例:

Sentinel 示例

Nacos 示例

RocketMQ 示例

阿里云 OSS 示例

版本控制指南

项目的版本号形式为 x.x.x,其中 x 是从 0 开始的数字,不限于 0~9 范围。当项目处于孵化阶段时,版本号为 0.x.x。

由于 Spring Boot 1 和 Spring Boot 2 在 Actuator 模块中的接口和注解发生了重大变化,spring-cloud-commons 从 1.x.x 到 2.0.0 也变化很大,我们采用与 Spring Boot 版本号相同的规则。

  • 1.5.x 对应 Spring Boot 1.5.x
  • 2.0.x 对应 Spring Boot 2.0.x
  • 2.1.x 对应 Spring Boot 2.1.x
  • 2.2.x 对应 Spring Boot 2.2.x
  • 2020.x 对应 Spring Boot 2.4.x
  • 2021.x 对应 Spring Boot 2.6.x
  • 2022.x 对应 Spring Boot 3.0.x
  • 2023.x 对应 Spring Boot 3.2.x

行为准则

本项目是 Spring Cloud 的子项目,遵循贡献者公约行为准则。参与时,您应遵守此准则。如遇到不可接受的行为,请向 spring-code-of-conduct@pivotal.io 报告。

代码约定和内务管理

这些不是拉取请求的必要条件,但都会有所帮助。它们可以在原始拉取请求之后但合并之前添加。

使用 Spring Framework 代码格式约定。如果使用 Eclipse,可以从 Spring Cloud Build 项目导入 eclipse-code-formatter.xml 文件的格式设置。如果使用 IntelliJ,可以使用 Eclipse Code Formatter 插件导入相同的文件。

确保所有新的 .java 文件都有简单的 Javadoc 类注释,至少包含一个标识您的 @author 标签,最好还有至少一段关于该类用途的说明。

为所有新的 .java 文件添加 ASF 许可头注释(从项目中的现有文件复制)。

如果您对 .java 文件进行了实质性修改(不仅仅是美化修改),请将自己添加为 @author。

添加一些 Javadocs,如果更改了命名空间,还要添加一些 XSD 文档元素。

一些单元测试也会有很大帮助 —— 总得有人来做这件事。

如果没有其他人使用您的分支,请将其重新基于当前的 2023.x(或主项目中的其他目标分支)。

在编写提交消息时,请遵循以下约定,如果您正在修复现有问题,请在提交消息末尾添加 Fixes gh-XXXX(其中 XXXX 是问题编号)。

联系我们

邮件列表是讨论几乎所有与 spring-cloud-alibaba 相关事项的推荐方式。

spring-cloud-alibaba@googlegroups.com:如果您在使用或开发 spring-cloud-alibaba 时遇到任何问题,可以在这里提问。

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

稿定AI

稿定设计 是一个多功能的在线设计和创意平台,提供广泛的设计工具和资源,以满足不同用户的需求。从专业的图形设计师到普通用户,无论是进行图片处理、智能抠图、H5页面制作还是视频剪辑,稿定设计都能提供简单、高效的解决方案。该平台以其用户友好的界面和强大的功能集合,帮助用户轻松实现创意设计。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号