作者:铖朴
新版本预览
本次发布的 Spring Cloud Alibaba 2.2.8 版本是基于项目 2.2.x 分支构建发布的,是在 Spring Cloud Hoxton.SR12、Spring Cloud 2.3.12.RELEASE 的基础上对其中包括注册配置中心、分布式消息等在内的众多组件进行了升级,属于一个组件升级与 Bug 修改的版本。本次发布的 Spring Cloud Alibaba 2.2.8 版本对以下组件版本进行了升级:
- Nacos:升级 Nacos 客户端到 2.1.0 版本[1],该版本新增了包括认证插件和配置加密插件等相关能力。
- RocketMQ:升级到了 4.9.3 版本[2],该版本提供了轻量级消息队列和为延迟消息提供异步发送功能等在内的诸多特性。
- Sentinel:升级到了 1.8.4 版本[3],该版本完善了 transport 和网关流控参数解析模块的扩展性,提供拦截器扩展以支持用户自定义鉴权。
- Seata:升级到了 1.5.1 版本[4],该版本提供了控制台,SkyWalking APM 能力等在内的诸多新特性。
除了组件升级,另外也修复了一些之前版本所存在的问题,进一步提升了 Spring Cloud Alibaba 使用的稳定性与健壮性。更多内容可参见发版公告[5]。Spring Cloud Alibaba 与 Spring Cloud 和 Spring Boot 当前各版本对应关系可参见官网 Wiki 版本说明[6]。
打造更好用的微服务技术
经过三年多的飞速发展,截止到当前,Spring Cloud Alibaba 共发布了 28 个版本,在 GitHub上的累计 stars 数目超过了 22.5k,fork 数达到了 7.0k,用户数达到了 24k 之多,各项关键数据遥遥领先国内外各大云厂商推出的同类开源微服务产品。
除了支撑阿里巴巴经济体日常复杂的微服务应用场景,Spring Cloud Alibaba 也被数千家外部企业用户在生产场景中广泛使用。
未来 Spring Cloud Alibaba 会继续对齐 Spring Cloud 主流版本发展演进,同时支持以 Spring Cloud 2021.x 和 Hoxton 两个当前主流版本对应的 Spring Cloud Alibaba 2021.x 和 2.2.X 版本迭代。
在发展规划方面,如果说 Spring Cloud Alibaba 过去的第一阶段工作是提供微服务解决方案组件丰富 Spring Cloud 生态,让广大外部用户能够轻松地拥抱微服务。未来,在第二阶段,Spring Cloud Alibaba 会通过自身的努力让外部的用户用好微服务,通过构建微服务治理和业务高可用相关能力,满足用户在微服务使用过程中的更高层次的诉求。具体的话将投入力量构建 Spring Cloud 生态的微服务治理、微服务高可用和分布式任务调度等方面能力。近期主要规划的内容包括以下 2 部分。
依托 Service Mesh 构建 Spring Cloud 生态应用微服务治理能力
目前 Spring Cloud 生态缺乏成熟完整的微服务治理能力,服务网格作为当下云原生微服务治理领域的热门技术,通过 Sidecar 代理方式将业务与框架解耦带来了比如基础框架与应用解耦、支持多语言和应用易迁移等诸多优势。其中,Istio 是服务网格中最具代表性的实现,其定义的很多规则成为了服务治理领域的一个通用描述,通过 Istio + Sidecar 的模式可以实现如金丝雀发布、鉴权、可观测等微服务治理功能。依托 Service Mesh 技术构建微 Spring Cloud 生态微服务治理能力的具体方案包括以下 2 种:
- Sidecar 模式
Sidecar 代理模式是作为应用 Mesh 化的通用方法,其通过在部署于 Kubernetes 的业务 Pod 中增加一个 Sidecar 代理容器以实现对业务流量的劫持进而实现如服务鉴权、金丝雀发布等微服务治理功能,应用通过 Sidecar 模式实现微服务治理功能详细的架构如下图所示:
由于在该种模式下,Spring Cloud 应用的流量都由业务 Pod 中的 Sidecar 代理进行托管,所有的治理规则管理下发和规则执行都依托于 Service Mesh 中的控制面和数据面能力,因此在不需要改动应用框架的条件下就可为 Spring Cloud 应用便捷的提供服务治理功能。Sidecar 代理模式为 Spring Cloud 应用提供服务治理能力的方式完全保留了 Mesh Service 原生优良设计,但由于在应用的调用过程中多了一层代理来进行流量转发,其性能上会有一定损耗。
- Proxyless Service Mesh 模式
由于 Sidecar 代理模式在性能上的不足,Proxyless Service Mesh 无代理 Mesh 化技术被业界提出,作为相对于 Sidecar 代理模式而言的另外 Mesh 化方案,其不再利用原来 Service Mesh 中数据面 Sidecar 的流量拦截能力,而是仅利用控制面 Istio 的规则管理与下发能力,通过在框架层面对接 xDS 协议,在框架(此处指 Spring Cloud Alibaba)中重新实现对接 xDS 协议的服务发现与负载均衡功能,让其能解析从控制面下发的治理规则,从而实现服务治理。其架构如下图所示:
该种方式较好的继承了 Mesh Service 中控制面 Istio 的治理规则管控能力,并摒弃了 Sidecar 方案在性能上的不足,是一种当前微服务框架与 Service Mesh 的折中方案,能解决现有微服务框架中微服务治理能力欠缺问题,同时避免出现明显的性能瓶颈。社区接下来,计划在上述两种 Service Mesh 方式上都做相关探索,构建 Spring Cloud 生态的微服务治理能力。
集成 AppActive 方案,构建 Spring Cloud 生态的应用高可用方案
AppActive,由阿里巴巴开源于 2021 年 12 月开源的一个面向业务应用构建云原生高可用多活容灾架构的开源中间件。它提供了应用多活容灾架构的标准、实现和 Demo,适用于丰富的业务场景(单 AZ、单 Region、单云、多 AZ、多 Region、多云、自建 IDC 等)。
AppActive 建立在 阿里巴巴 使用 AHAS-MSHA 系统大规模运行生产应用系统的 8 年经验之上,且结合了来自阿里云商业化服务的外部多家客户和社区的最佳实践,具备高可靠、可拓展等特性。其整体的方案从网关入手到业务应用最后到数据服务涵盖了当今常规软件系统全部组件的高可用解决方案,详细的方案如下图所示:
社区接下来,计划与 AppActive 社区一起,将 AppActive 的相关能力,通过集成到 Spring Cloud Alibaba 中,为 Spring Cloud 用户提供开箱即用的应用高可用能力。
激励计划
季度活跃贡献者计划
由于 Spring Cloud Alibaba 项目模块多,内容面涉及广等特点。由少数同学参与全部模块的 PR 的 Code Review 和 issues 处理任务量大,效率偏低。社区决定把模块进行划分,3 个月为一轮,将项目分为 Nacos、Sentinel、RocketMQ、Seata 和 Sidecar 这 5 个模块,每个模块招募 1~2 个同学负责对应模块的 issues 处理和 PR Code Review 工作。
要求:
- 对相关模块有一定了解,最好有相关贡献经历;
- 在招募期间,需要每隔 1~2 天浏览 GitHub 上相关 issues 和 PR 情况,有所负责的模块相关的 issues 和 PR,需要能及时处理,一般尽量在 3 天内给出回复;
- 在招募期间,无特殊原因的情况下,能按时参加社区双周会。
收获:
- 所有参与招募任务的同学,报名可获得 Spring Cloud Alibaba 社区定制文化衫 1 件,如果 3 个月活动结束时能顺利完成招募任务可获得社区定制水杯 1 个;
- 一次比较好的机会,能让自己长期参与社区活动,帮助外部同学解决问题过程中提升自身对相关模块的理解程度,掌握相关关联开源框架的实现原理,对自身核心竞争力提升有帮助;
- 如果对相关模块能参与贡献有价值得到社区成员认可的贡献,有机会提名成为社区 Committer。
月度活跃参与者计划
为了对长期参与社区活动(周会,社区讨论或线上/线下 Meetup 等),在社区交流群中积极解决外部用户问题,活跃在社区项目 GitHub 主页的同学给与一定的奖励,社区从 6 月份开始,每月会由核心贡献者提名投票选出 1 位 Spring Cloud Alibaba 社区月度活跃参与者,奖励社区定制文化衫 1 件。
说明:
- 对获奖同学身份没有要求,所有参与社区的内外部同学都有机会获得;
- 无论是参与社区活动,还是解答 issues 或是提交 PR 都可算作参与社区贡献;
- 获奖需经过社区核心贡献成员提名并投票;
- 参与季度活跃贡献者计划的同学在招募期内不能同时被提名为月度活跃参与者。
欢迎感兴趣的同学,通过扫描下方二维码加入 Spring Cloud Alibaba 社区,一起为构建更好用的微服务技术努力!
参考链接:
[1]2.1.0版本:
https://nacos.io/zh-cn/blog/2.1.0-release.html
[2] 4.9.3版本:
https://rocketmq.apache.org/release_notes/release-notes-4.9.3/
[3] 1.8.4 版本:
https://sentinelguard.io/zh-cn/blog/sentinel-1-8-4-release.html
[4] 1.5.1版本:
https://github.com/seata/seata/releases
[5] 发版公告:
https://github.com/alibaba/spring-cloud-alibaba/releases/tag/2.2.8.RELEASE
[6] 官网 Wiki 版本说明:
https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E
MSE 注册配置中心专业版首购享 9 折优惠,MSE 云原生网关预付费全规格享 85 折优惠。
点击此处,即享优惠!