Spring Cloud Alibaba 从孵化到 "挂牌" 之旅

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
性能测试 PTS,5000VUM额度
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
简介: 背景 2014 年,Spring Boot 1.0 发布。Spring Boot 的发布绝对是 Pivotal 历史上具有里程碑意义的事件,它让我们能够非常简便地开发 Spring 应用,屏蔽了各种配置文件和底层实现,提供 AutoConfiguration,Factory Loading Mechanism, Embedded Servlet Container,Conditional Annotation 等诸多特性。

背景

2014 年,Spring Boot 1.0 发布。Spring Boot 的发布绝对是 Pivotal 历史上具有里程碑意义的事件,它让我们能够非常简便地开发 Spring 应用,屏蔽了各种配置文件和底层实现,提供 AutoConfiguration,Factory Loading Mechanism, Embedded Servlet Container,Conditional Annotation 等诸多特性。目前围绕着 Spring Boot 的生态项目已经太多了,包括 Spring Cloud,Spring Cloud Gateway,Spring Initializr,Spring Cloud Stream, Spring Cloud Data Flow。周边几乎所有的第三方开源项目都创建了 Spring Boot 对应的 Starter: Kafka Starter,RabbitMQ Starter,MyBatis Starter,Dubbo Starter。

这张图可以很好地说明 Spring Boot 发布后代码的简化:
lADPDgQ9rHr3GmHNBTXNBQA_1280_1333_jpg_620x10000q90g

从 JetBrains 发布的 2019 年 Java 生态报告来看,Spring Boot 已经成为了最流行的 java web 框架:

lADPDgQ9rHr3Gk7NAUTNBP4_1278_324_jpg_620x10000q90g

2016 年,阿里全面拥抱 Spring Boot,开始进行 Spring Boot 与阿里中间件的整合。开发了 spring-boot-starter-sentinel, spring-boot-starter-diamond, spring-cloud-stream-binder-metaq 等 Starter。业务团队开始尝试引用 Spring Boot 替换原先的 Webx(Spring MVC)。

Spring Cloud 是 Pivotal 推出的基于 Spring Boot 用于开发分布式应用的一款开源项目,其内部定义了分布式开发所需的规范: 服务注册/发现,服务熔断,分布式配置,服务调用,服务路由,分布式消息,消息总线等。

这些规范阿里也有对应的实现,我们决定提供基于阿里中间件的 Spring Cloud 规范实现并开源 - Spring Cloud Alibaba。

进入 Spring Cloud 孵化器

有了这个想法之后,团队开始跟 Pivotal 进行沟通。我们在 GitHub 上找到了 Spring Cloud Leader - Spencer Gibb 的邮箱,介绍了阿里内部的几个项目,表示想融入到 Spring 社区里。

2017 年 12 月,Spring Cloud Alibaba 顺利进入 Spring Cloud 孵化器。

一开始这个项目的名字是 spring-cloud-alibabacloud。两个 cloud 读起来有点拗口,后来去掉了最后的那个 cloud,Github 支持 rename 功能,整个过程是无感知的。现在进入 https://github.com/spring-cloud-incubator/spring-cloud-alibabacloud 地址还会重定向到我们的仓库。

之后,Nacos,Sentinel 和 Seata 相继开源。Nacos 是阿里巴巴软负载团队开发的 Diamond 和 Vipserver 的集合,Sentinel 是阿里巴巴高可用团队的稳定性利器,Seata 是 GTS 团队开源的分布式事务解决方案。

同时我们也把阿里云的一些服务跟 Spring Cloud 体系进行了整合,比如 OSS 对象存储,SMS 短信服务,SchedulerX 分布式任务调度,让开发者可以更方便地使用阿里云服务。

版本发布

版本发布总体比较顺利。Spring 社区在版本发布这方面跟 Apache 社区相比,没有那么严格的规范。基本上都是开发 & 测试结束后,在 Slack 上预约时间,提供版本的 Release Note,Blog,然后让 Spencer 进行 Release。Release 到 Central 后,再进行验证。

lALPDgQ9rHr3GlDNAhHNBQA_1280_529_png_620x10000q90g

Spring Cloud Alibaba 在孵化器内一共 Release 了 3 个版本。这是每次发版对应的 Blog:

这里不得不提一下,因为 Spring Boot 兼容性没有做好,对不同的 Spring Cloud 版本,我们都需要 release 对应的版本(0.1.x 对应 Spring Cloud Edgware,0.2.x 对应 Spring Cloud Finchley)。

2018 年在北京参加 Spring One Tour 的时候,还特地跟 Spencer 吐槽了这块兼容性问题。

lADPDgQ9rHr3GlTNA8DNBQA_1280_960_jpg_620x10000q90g
lADPDgQ9rHr3GlbNA73NBQA_1280_957_jpg_620x10000q90g

参加 Spring One Tour 的当天晚上在酒店跟 Josh Long 介绍 Spring Cloud Alibaba,之后 Josh Long 制作 Bootiful Alibaba 视频:
https://spring.io/blog/2018/12/26/spring-tips-bootiful-alibaba

lADPDgQ9rHr3GlvNA8DNBQA_1280_960_jpg_620x10000q90g

2019 年 4 月在西溪园区跟 Josh Long 演示 Dubbo Spring Cloud & Spring Cloud Stream RocketMQ Binder:

lADPDgQ9rHr3GlzNA73NBQA_1280_957_jpg_620x10000q90g

Spring 社区毕业

2019 月 7 月 24 日,Spring 官方宣布 Spring Cloud Alibaba 毕业,仓库迁移至 Alibaba Github OSS 下。这意味着 Spring Cloud Alibaba 是国内首个进入 Spring 社区的开源项目。

这是 Spring Cloud Alibaba 提供的 feature:

  • 服务限流降级:使用 Sentinel 进行流量控制,熔断降级以及系统保护等多个维度保护服务稳定性
  • 服务注册与发现:使用 Nacos 适配 Spring Cloud 服务注册与发现标准,默认集成了 Ribbon 这个客户端负载均衡组件
  • 分布式配置管理:以 Nacos 作为数据存储支持分布式系统中的外部化配置,配置更改时自动刷新
  • 事件驱动:使用 Spring Cloud Stream RocketMQ Binder 来构建事件驱动的微服务实例
  • 消息总线:使用 Spring Cloud Bus RocketMQ 连接分布式系统中的各个节点
  • 分布式事务:使用 Seata 高效并且对业务零侵入地解决分布式事务问题
  • Dubbo RPC:扩展 Spring Cloud 服务调用协议,可使用 Spring Cloud 客户端调用 Dubbo 服务
  • 阿里云 OSS 集成: 使用阿里云 OSS 服务集成 Spring Resource 资源

和 Spring Cloud Alibaba 有关的技术文章:

Dubbo Spring Cloud 重塑微服务治理

Spring Cloud Alibaba基础教程

Spring Cloud Alibaba 系列教程

microservices-with-spring-cloud-alibaba

Spring Tips: Bootiful Alibaba

Spring Cloud Stream 体系及原理介绍

干货|Spring Cloud Bus 消息总线介绍

挂牌 Spring 官方

2019 月 10 月 3 日,Spring Cloud Alibaba 正式 "挂牌" Spring 官方,成为推荐的 Spring Cloud 规范实现之一。
https://spring.io/projects/spring-cloud-alibaba
lALPDgQ9rHr3Gl7NA4PNBQA_1280_899_png_620x10000q90g

Spring Cloud Alibaba 的发展历程回顾:

  • 2018 年 7 月,Spring Cloud Alibaba 正式开源,进入 Spring Cloud 孵化器。
  • 2018 年 10 月,Spring Cloud Alibaba 发布开源后的第一个版本 0.1.0 & 0.2.0 (适配 Spring Cloud Edgware & Finchley ),包含 Nacos Config, Nacos Discovery、 Sentinel 以及 OSS 4 个组件。
  • 2018 年 12 月,Spring Cloud Alibaba 发布第二个版本 0.1.1 & 0.2.1,新增 Spring Cloud Stream RocketMQ Binder 和 Spring Cloud Bus RocketMQ 组件。
  • 2019 年 4 月,Spring Cloud Alibaba 发布 Preview Release 版本 0.9.0, 0.1.2 & 0.2.2 (首次适配 Spring Cloud Greenwich ),新增 Dubbo Spring Cloud、Seata 组件。颠覆性地使用 Spring Cloud 客户端调用 Dubbo 服务
  • 2019 年 7 月,Spring Cloud 官方宣布 Spring Cloud Alibaba 毕业。
  • 2019 月 8 月,Spring Cloud Alibaba 发布毕业后的第一个版本 1.5.0, 2.0.0 & 2.1.0。新增 spring-cloud-alibaba-sentinel-gateway 模块以完善 Sentinel 对 Spring Cloud 体系 Gateway 的支持。

谁在使用 Spring Cloud Alibaba

目前已有不少企业用户在使用 Spring Cloud Alibaba,包括爱回收、东家、Acmedcare+、生学教育、联想云、凤凰网、平安科技。我们也在社区发起了“who is using Spring Cloud Alibaba”的issue,可以去这个页面了解各家企业的使用场景。
https://github.com/alibaba/spring-cloud-alibaba/issues/301

致谢

感谢 Alibaba 和 Spring 社区开源的项目:

Apache Dubbo

Seata

Sentinel

Nacos

Apache RocketMQ

Spring Cloud

Spring Boot

感谢所有的 Spring Cloud Alibaba Contributors:

@fangjian0423, @flystar32, @mercyblitz, @pbting, @xiaolongzuo, @zhendong590, @zhaoyuguang, @xiejiashuai,@spencergibb, @Rivers-Shall, @chuntaojun, @slievrly, @liudaomanbu, @zkzlx, @pigxcloud, @ly641921791, @echooymxq, @mostcool, @liuxx001, @lichen782, @yunzheng1228, @tigerMoon, @wangxing-git, @pyhblacksky, @purgeyao, @lyuzb, @eacdy, @cdfive, @AbelSara, @jsbxyyx, @yanglbme, @xingfudeshi, @pengzai170, @george510257, @carlWangTao, @JevonYang, @HaojunRen, @yidadi, @wzlee, @sundong1982, @sczyh30, @panda-luo, @lujian0571, @lovepoem, @liaozan, @kaiguoyuanshuai, @justlive1, @hero-zhanghao, @codewaltz1994, @caojiele, @bluesword12350, @MaoJianwei, @JakeConnors376W, @Harris2012

本文作者:方剑,花名洛夜,GitHub ID @fangjian0423,开源爱好者,阿里巴巴高级开发工程师,阿里云产品 EDAS 开发,Spring Cloud Alibaba 开源项目负责人。

相关实践学习
消息队列RocketMQ版:基础消息收发功能体验
本实验场景介绍消息队列RocketMQ版的基础消息收发功能,涵盖实例创建、Topic、Group资源创建以及消息收发体验等基础功能模块。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
目录
打赏
0
9
10
48
13399
分享
相关文章
DeepSeek + Higress AI 网关/Spring AI Alibaba 案例征集
诚挚地感谢每一位持续关注并使用 Higress 和 Spring AI Alibaba 的朋友,DeepSeek + Higress AI 网关/Spring AI Alibaba 案例征集中。
126 15
Spring AI Alibaba 应用框架挑战赛圆满落幕,恭喜获奖选手
第二届开放原子大赛 Spring AI Alibaba 应用框架挑战赛决赛于 2 月 23 日在北京圆满落幕。
支持 40+ 插件,Spring AI Alibaba 简化智能体私有数据集成
通过使用社区官方提供的超过 20 种 RAG 数据源和 20 种 Tool Calling 接口,开发者可以轻松接入多种外部数据源(如 GitHub、飞书、云 OSS 等)以及调用各种工具(如天气预报、地图导航、翻译服务等)。这些默认实现大大简化了智能体的开发过程,使得开发者无需从零开始,便可以快速构建功能强大的智能体系统。通过这种方式,智能体不仅能够高效处理复杂任务,还能适应各种应用场景,提供更加智能、精准的服务。
SpringCloud Alibaba AI整合DeepSeek落地AI项目实战
在现代软件开发领域,微服务架构因其灵活性、可扩展性和模块化特性而受到广泛欢迎。微服务架构通过将大型应用程序拆分为多个小型、独立的服务,每个服务运行在其独立的进程中,服务与服务间通过轻量级通信机制(通常是HTTP API)进行通信。这种架构模式有助于提升系统的可维护性、可扩展性和开发效率。
228 1
Spring Cloud Alibaba与Spring Cloud区别和联系?
Spring Cloud Alibaba与Spring Cloud区别和联系?
AI 时代:从 Spring Cloud Alibaba 到 Spring AI Alibaba
本次分享由阿里云智能集团云原生微服务技术负责人李艳林主讲,主题为“AI时代:从Spring Cloud Alibaba到Spring AI Alibaba”。内容涵盖应用架构演进、AI agent框架发展趋势及Spring AI Alibaba的重磅发布。分享介绍了AI原生架构与传统架构的融合,强调了API优先、事件驱动和AI运维的重要性。同时,详细解析了Spring AI Alibaba的三层抽象设计,包括模型支持、工作流智能体编排及生产可用性构建能力,确保安全合规、高效部署与可观测性。最后,结合实际案例展示了如何利用私域数据优化AI应用,提升业务价值。
241 4
【SpringCloud Alibaba系列】Dubbo高级特性篇
本章我们介绍Dubbo的常用高级特性,包括序列化、地址缓存、超时与重试机制、多版本、负载均衡。集群容错、服务降级等。
【SpringCloud Alibaba系列】Dubbo高级特性篇
【SpringCloud Alibaba系列】一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论
一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论。
【SpringCloud Alibaba系列】一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论
【SpringCloud Alibaba系列】Dubbo dubbo-admin安装教程篇
本文介绍了 Dubbo-Admin 的安装和使用步骤。Dubbo-Admin 是一个前后端分离的项目,前端基于 Vue,后端基于 Spring Boot。安装前需确保开发环境(Windows 10)已安装 JDK、Maven 和 Node.js,并在 Linux CentOS 7 上部署 Zookeeper 作为注册中心。
【SpringCloud Alibaba系列】Dubbo dubbo-admin安装教程篇
【SpringCloud Alibaba系列】Dubbo基础入门篇
Dubbo是一款高性能、轻量级的开源Java RPC框架,提供面向接口代理的高性能RPC调用、智能负载均衡、服务自动注册和发现、运行期流量调度、可视化服务治理和运维等功能。
【SpringCloud Alibaba系列】Dubbo基础入门篇
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等