Spring Cloud Alibaba 生态发展和近期规划

本文涉及的产品
性能测试 PTS,5000VUM额度
可观测链路 OpenTelemetry 版,每月50GB免费额度
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
简介: Spring Cloud Alibaba 的诞生得益于过往数十年处理淘系电商高并发大流量业务所积累的技术经验,阿里巴巴内部沉淀了一套包括限流降级、分布式配置、注册中心、分布式消息、分布式事务等完整的微服务解决方案,比如 Sentinel、RocketMQ 等。2015 年 6 月, Spring Cloud 第一个正式版本发布后,得益于 SpringBoot 奠定的用户群体基础,再加上 Spring Cloud 本身较为完善的解决方案能力和简单易上手的特点,迅速成为微服务技术圈热点。

Spring Cloud Alibaba 生态发展和近期规划

——饶子昊

Spring Cloud Alibaba 社区负责人

一、Spring Cloud Alibaba起源

image.png

Spring Cloud Alibaba 的诞生得益于过往数十年处理淘系电商高并发大流量业务所积累技术经验,阿里巴巴内部沉淀一套包括限流降级、分布式配置注册中心、分布式消息分布式事务等完整微服务解决方案,比如 SentinelRocketMQ 等。


2015 6 月, Spring Cloud 一个正式版本发布后,得益于 SpringBoot 奠定用户群体基础,再加上 Spring Cloud 本身较为完善解决方案能力和简单易上手特点,迅速成为服务技术圈热点。


随后两年发展事实证明,以 Spring Cloud Netflix 为代表基于 Spring Cloud 规范一整套微服务解决方案,对中小企业技术发展产生巨大影响,加速大量中小企业从单体式应用向分布式微服务转型节奏。


受到 Spring Cloud Netflix 项目启发考虑到虽然 Spring Cloud 生态设计理念非常好,但相关微服务解决方案并不是十分成熟,部分能力缺失。恰逢阿里内部已经有一套相对较完整解决方案。因此,阿里于 2018 7 月将内部经过十多年技术打磨一整套微服务解决方案,通过 Spring Cloud Alibaba 方式贡献给 Spring Cloud 生态。

image.png

如图所示,通过 Spring Cloud Alibaba 配套阿里对外提供差异化存储和监控等方面能力,很多外部用户提供了方便低成本构建微服务应用的途径


二、Spring Cloud Alibaba Spring Cloud 生态关系

image.png

上图圆圈内部颜色较深橙色部分表示 Spring Cloud ,它是在 SpringBoot 基础上提供一套完整微服务解决方案标准,由一系列相关子项目组成,包括 OpenFeign RestTemplate定义分布式 RPC 调用能力、Spring Cloud Comments Spring Cloud Config 子项目抽象统一注册配置中心能力Spring CloudStream子项目定义分布式消息集成标准和Spring Cloud CircuitBreak 子项目定义统一限流降级能力等。


基于微服务中标准,Spring Cloud Alibaba 来自阿里巴巴内部微服务解决方案提供了具体实现,不仅给 Spring Cloud 生态带NacosRocketMQSentinel 等微服务解决方案实现还集成一些阿里云平台服务,比如短信服务、SMS分布式任务调度、Schedulex 等。


Spring Cloud Netflex Spring Cloud Alibaba Spring Cloud 关系一样,都是基于 Spring Cloud 这一整套微服务所定义标准具体实现。

image.png

目前 Spring Cloud 生态已经非常庞大繁荣 Spring Cloud Alibaba Spring Cloud Netflix 以外,ZooKeeper Consul 都分别以 Spring Cloud ZooKeeper   Spring Cloud Consul 项目形式贡献给 Spring Cloud 社区作为其中注册和配置中心解决方案实现,给予用户更多选择。


另外 Spring Cloud Kubernetes也是云原生时代非常有意思子项目,它使 Spring Cloud 服务可以直接基于 Kubernetes服务 service 概念去调用基于Kubernetes构建微服务。


从上图可知 Spring Cloud Alibaba Spring Cloud Netflix 互为补充,在 Spring Cloud 生态完整度方面起到重要作用。


另外,此方组件在国内用户中的受欢迎程度已经超过Spring Cloud 官方默认提供一些组件,比如 Nacos RocketMQ 已经逐渐成为国内分布式注册配置中心和分布式消息的事实标准,广泛应用大量中小企业生产环境中。


三、Spring Cloud Alibaba 集成 RocketMQ Spring Cloud Stream


原先基于 SpringBoot 框架或 Spring 框架,也可以用 Nacos RocketMQ中间件来构造微服务应用。而 Spring Cloud Alibaba 通过上述中间件来构造微服务组件完整性方面优势以外,是否还有其他优点?

image.png

RocketMQ 是阿里巴巴中间件团队在 2012 年自主研发并对外开源第三代分布式消息引擎,其高性能、低延迟、抗堆积特性稳定支撑历年阿里巴巴双十一万亿级数据洪峰业务。2016 年,阿里巴巴向阿帕奇软件基金会捐献RocketMQ 项目。次年,RocketMQ 顺利从阿帕奇软件基金会毕业。


如上图所示,一个生产环境中的 RocketMQ 系统由 Name Server 集群、 Broker 集群、生产者集群和消费者集群四个部分组成。其中 Broker 集群用于存储消息Name Server 集群提供命名服务帮助消息生产者将消息发送到特定Broker 集群以及从特定 Broker 集群中订阅消息。

image.png

RocketMQ  作为支撑淘系电商大促核心中间件之一,不仅在可靠性和吞吐量方面经过实战考验,优势显著,它还提供两种订阅模,分别是广播订阅和集群订阅,以及多种消息发送方式和多种消息类型,包括普通消息、顺序消息、定时消息、延迟消息和事务消息等,这些消息类型能够帮助业务开发人员轻松解决特定业务诉求。

image.png

Spring Cloud Stream 作为 Spring Cloud 定义分布式消息解决方案,主要MessageBinder Bindings 三部分组成。 Message 定义统一消息结构,能够将业务系统中消息数据通过统一消息结构传递给特定消息中间件中Message 消息结构。Binder Spring Cloud Stream 核心,负责与外部消息集成比如 RocketMQ 集成需要有 RocketMQ Binder,与 Kafka 集成要有 Kafka BinderMiddleware表示具体消息中间件,可以是RocketMQ 也可以是 Kafka 等。


上图中,上半部分使用 Spring Cloud Stream 连接消息中间件应用程序,中间 Binder 类似于连接器,连接应用程序与具体消息中间,从而实现应用与外部消息中间解耦。


Bandings Binder 创建,主要负责业务系统与消息中间件通信,通过消息发送者和接收者即可将消息发送到 Binder 里,然后从消息集群中订阅消息。

image.png

上图为 Spring Cloud Alibaba 基于 Spring Cloud Stream 使用 RocketMQ 案例。


消息生产者和消费者实现消息发送和接收代码分别如图中左边和右边所示。消息生产者循环发送 100 次消息,消费者不断从 Broker 集群中拉取消息进行消费。整个程序基于Spring Cloud Stream 函数式编程 API 编写,没有任何RocketMQ依赖和类仅需在配置文件中配置RocketMQ 集群中Name Server Broker,即可实现消息发送和接收。


通过 Spring Cloud Alibaba 基于 Spring Cloud Stream实现去使用 RocketMQ,相较于传统基于 Spring SpringBoot 框架的优势在于,它能够在代码层面实现消息中间件与业务代码解耦。如果要替换消息中间件,开发人员无需修改具体业务代码,仅需替换项目中所依赖中间件和 Application Properties 配置文件中消息中间集群地址,即可轻松切换到其他消息中间件


Spring Cloud 不仅可以帮助更好地构建微服务应用,在帮助微服务应用具体分布式中间件进行解耦方面也发挥重要价值。为了业务系统具有比较好后期维护性和生命周期,建议各企业用户使用 Spring Cloud Alibaba实现中间件使用方式构建微服务应用。


四、回顾与展望

image.png

经过三年多的发展发展Spring Cloud一共发布 27 个大版本 star 数目 22.5k fork 目和用户数目分别达到 7k 23.7k 遥遥领先国内外甚至 Spring Cloud 官方子项目相关数据。

image.png

未来 Spring Cloud Alibaba 社区会以下两个方面进一步丰富项目能力促进社区发展


第一,社区活动方面


① 举办定期社区双周会,讨论 github 上过往两周 issue PR 情况。另外周会中也会组织相关主题内容分享,周会信息将在 Spring Cloud Alibaba 交流群中进行同步。


② 联合中科院和阿里巴巴开源办公室举办开源之夏”编程之夏”等活动。活动主要针对在校生,通过暑期时间,在社区导师一对一带领下完成某些 feature 贡献给社区为广大在校接触开源社区提供渠道和更多机会


③ 线下或线上举办 Meetup为社区内外同学提供更多交流机会。


第二,发展规划:Spring Cloud Alibaba过去第一阶段工作是丰富 Spring Cloud 生态,让广大外部用户能够轻松地拥抱微服务未来。第二阶段,Spring Cloud Alibaba将继续努力,让外部用户用好微服务,构建微服务治理和业务高可用相关能力,满足用户在微服务使用过程中高层次诉求,包括以下三个方面:


① 全面支持 RocketMQ 5.0 Sentinel 2.0 等中间件,用户带来更丰富中间件使用体验。


② 构建 Spring Cloud 生态微服务治理能力、微服务高可用等能力


③ 构建 Spring Cloud 分布式任务调度等方面能力


最后非常欢迎Spring Cloud Alibaba项目感兴趣同学加入社区,一起参与 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
相关文章
|
2月前
|
SpringCloudAlibaba API 开发者
新版-SpringCloud+SpringCloud Alibaba
新版-SpringCloud+SpringCloud Alibaba
|
3月前
|
资源调度 Java 调度
Spring Cloud Alibaba 集成分布式定时任务调度功能
定时任务在企业应用中至关重要,常用于异步数据处理、自动化运维等场景。在单体应用中,利用Java的`java.util.Timer`或Spring的`@Scheduled`即可轻松实现。然而,进入微服务架构后,任务可能因多节点并发执行而重复。Spring Cloud Alibaba为此发布了Scheduling模块,提供轻量级、高可用的分布式定时任务解决方案,支持防重复执行、分片运行等功能,并可通过`spring-cloud-starter-alibaba-schedulerx`快速集成。用户可选择基于阿里云SchedulerX托管服务或采用本地开源方案(如ShedLock)
105 1
|
19天前
|
JSON SpringCloudAlibaba Java
Springcloud Alibaba + jdk17+nacos 项目实践
本文基于 `Springcloud Alibaba + JDK17 + Nacos2.x` 介绍了一个微服务项目的搭建过程,包括项目依赖、配置文件、开发实践中的新特性(如文本块、NPE增强、模式匹配)以及常见的问题和解决方案。通过本文,读者可以了解如何高效地搭建和开发微服务项目,并解决一些常见的开发难题。项目代码已上传至 Gitee,欢迎交流学习。
Springcloud Alibaba + jdk17+nacos 项目实践
|
6天前
|
消息中间件 自然语言处理 Java
知识科普:Spring Cloud Alibaba基本介绍
知识科普:Spring Cloud Alibaba基本介绍
25 2
|
13天前
|
人工智能 开发框架 Java
总计 30 万奖金,Spring AI Alibaba 应用框架挑战赛开赛
Spring AI Alibaba 应用框架挑战赛邀请广大开发者参与开源项目的共建,助力项目快速发展,掌握 AI 应用开发模式。大赛分为《支持 Spring AI Alibaba 应用可视化调试与追踪本地工具》和《基于 Flow 的 AI 编排机制设计与实现》两个赛道,总计 30 万奖金。
|
14天前
|
Dubbo Java 应用服务中间件
Dubbo学习圣经:从入门到精通 Dubbo3.0 + SpringCloud Alibaba 微服务基础框架
尼恩团队的15大技术圣经,旨在帮助开发者系统化、体系化地掌握核心技术,提升技术实力,从而在面试和工作中脱颖而出。本文介绍了如何使用Dubbo3.0与Spring Cloud Gateway进行整合,解决传统Dubbo架构缺乏HTTP入口的问题,实现高性能的微服务网关。
|
14天前
|
人工智能 Java API
阿里云开源 AI 应用开发框架:Spring AI Alibaba
近期,阿里云重磅发布了首款面向 Java 开发者的开源 AI 应用开发框架:Spring AI Alibaba(项目 Github 仓库地址:alibaba/spring-ai-alibaba),Spring AI Alibaba 项目基于 Spring AI 构建,是阿里云通义系列模型及服务在 Java AI 应用开发领域的最佳实践,提供高层次的 AI API 抽象与云原生基础设施集成方案,帮助开发者快速构建 AI 应用。本文将详细介绍 Spring AI Alibaba 的核心特性,并通过「智能机票助手」的示例直观的展示 Spring AI Alibaba 开发 AI 应用的便利性。示例源
|
19天前
|
人工智能 Java API
阿里云开源 AI 应用开发框架:Spring AI Alibaba
阿里云开源 Spring AI Alibaba,旨在帮助 Java 开发者快速构建 AI 应用,共同构建物理新世界。
|
2月前
|
人工智能 开发框架 Java
重磅发布!AI 驱动的 Java 开发框架:Spring AI Alibaba
随着生成式 AI 的快速发展,基于 AI 开发框架构建 AI 应用的诉求迅速增长,涌现出了包括 LangChain、LlamaIndex 等开发框架,但大部分框架只提供了 Python 语言的实现。但这些开发框架对于国内习惯了 Spring 开发范式的 Java 开发者而言,并非十分友好和丝滑。因此,我们基于 Spring AI 发布并快速演进 Spring AI Alibaba,通过提供一种方便的 API 抽象,帮助 Java 开发者简化 AI 应用的开发。同时,提供了完整的开源配套,包括可观测、网关、消息队列、配置中心等。
1707 14
|
3月前
|
人工智能 前端开发 Java
【实操】Spring Cloud Alibaba AI,阿里AI这不得玩一下(含前后端源码)
本文介绍了如何使用 **Spring Cloud Alibaba AI** 构建基于 Spring Boot 和 uni-app 的聊天机器人应用。主要内容包括:Spring Cloud Alibaba AI 的概念与功能,使用前的准备工作(如 JDK 17+、Spring Boot 3.0+ 及通义 API-KEY),详细实操步骤(涵盖前后端开发工具、组件选择、功能分析及关键代码示例)。最终展示了如何成功实现具备基本聊天功能的 AI 应用,帮助读者快速搭建智能聊天系统并探索更多高级功能。
1151 2
【实操】Spring Cloud Alibaba AI,阿里AI这不得玩一下(含前后端源码)