相信你们对上周的 《来自 Spring Cloud 官方的消息,Spring Cloud Alibaba 即将毕业》文章记忆犹新。本周,Spring Cloud Alibaba 正式毕业,并发布了毕业后的第一个版本。git
Spring Cloud Alibaba 于 2018年7月27日 在 Spring Cloud 孵化器仓库提交第一次代码,到 2019年8月1日 在 Alibaba 仓库发布第一个毕业版本,时间将近整整一年。github
一年时间,Spring Cloud Alibaba 完成了从 Spring Cloud 最默默无闻的项目到 Spring Cloud 最火项目的蜕变,而且从孵化器仓库毕业了!web
Spring Cloud Alibaba 的正式毕业离不开社区的帮助,很是感谢 Spring Cloud Alibaba 的 contributor,也很是感谢社区开源爱好者们建立的 issue,每个 issue 都是对 Spring Cloud Alibaba 的帮助。spring
一、在 5 月底的时候,Spring Cloud Alibaba Team 跟 Spring Cloud Team 有过一次毕业的沟通,而且准备在 Spring Cloud Hoxton 正式发布的时候宣布 Spring Cloud Alibaba 毕业。只不事后来 Spring Cloud 官方调整了项目策略,须要进行仓库迁移。双方 team 后续还所以开了一个视频会议,Spring Cloud Alibaba 所以提早毕业。apache
二、Spring Cloud Team 但愿毕业后的 starter 命名方式跟 spring boot starter 规定的格式一致,以 alibaba--spring-cloud-starter 的格式进行命令。考虑到孵化器的 starter 都是以 spring-cloud-starter-alibaba- 开头,Spring Cloud Alibaba 并不想破坏原有的规则。最终双方讨论了好屡次才决定沿用老的 starter 命名方式。安全
三、在仓库迁移后的几天时间内,有社区的开源爱好者专门建立 issue 提问为什么离开 spring cloud 仓库,Spring Cloud Alibaba 被各类质疑。后来 Spring Cloud Leader - Spencer Gibb 在 issue 上回复进行了解释。并发
四、Spring Cloud Alibaba 原本计划是 6 月份发布毕业版本,结果拖到了如今。为了引发没必要要的舆论风险,咱们一直在等待 Spring Cloud Team 官方的公告发布,期间跟 Spring Cloud Team 沟通了好多个晚上(有 12 小时时差)。负载均衡
官方文章内容写得有点多,咱们翻译一下并作个简单的总结:jvm
集成到 Spring Cloud Release Train 带来的不便:spring-boot
如下的这些合做,其实与在不在 Spring Cloud Release Train 中没有关系:
仓库迁移对于开发者来讲,实际意味着什么?
一、Greenwich 对应的版本支持此 Greenwich.SR2 版本
二、Finchley 对应的版本支持此 Finchley.SR4 版本
三、Sentinel
四、Nacos Discovery
五、Nacos Config
六、RocketMQ Binder
七、Dubbo Spring Cloud
八、Seata
Thanks for the contributors: @Rivers-Shall, @ly641921791, @JevonYang, @cdfive, @eacdy, @pyhblacksky, @george510257, @AbelSara, @slievrly, @pigxcloud, @lovepoem, @liudaomanbu, @lujian0571, @jsbxyyx, @pengzai170, @hero-zhanghao, @wzlee, @xingfudeshi
一、Spring Boot Admin 是一个开源社区项目,用于管理和监控 SpringBoot 应用程序。可是它没有跟 Spring Cloud 作深度的整合。咱们但愿作一个 Spring Cloud Admin,它能提供以下功能:
二、参考 Spring Cloud Azure Playground http://azure-spring-cloud.azurewebsites.net/ ,创造 Spring Cloud Alibaba Playground,把一些最佳实践,视频教程,自动生成项目等功能放上去。
三、增长 Spring Cloud Alibaba 最佳实践项目。
四、针对 Spring Cloud Alibaba 各类特性,开发对应的实战 Demo。
五、替换 Spring Cloud 服务调用客户端 OpenFeign & Ribbon。开发更通用的服务调用客户端,替换 Spring Cloud 服务调用客户端 OpenFeign & Ribbon。
项目迁移到 Alibaba 自身的 GitHub 仓库后,不像在 spring-cloud-incubator 仓库中那样没有权限发展 committer。咱们如今有权限发展 contributor 成为 committer。任何人只要在 Spring Cloud Alibaba 项目上提交了 Pull Request 而且被 merge,就能够成为 contributor;contributor 晋升为为 committer,须要这些条件:
一、至少提交 5 个有份量的 Pull Request
二、参与 issue 列表的维护及重要 feature 的讨论
三、参与 code review
但愿有愈来愈多的开源爱好者可以成为 Spring Cloud Alibaba 的 contributor 或 committer,让咱们共同完善 Spring Cloud 生态。
毕业后用户侧代码修改
仓库迁移一定涉及到代码修改。咱们总结修改点有 3 点:
一、包名 package name
二、版本号 version number
三、若是用到了 Spring Cloud Alibaba 内部类,须要 reimport 这些类(少部分状况才须要改,大部分状况这些类都被 AutoConfiguration 屏蔽了)
以使用 Spring Cloud Alibaba Bom 和 Spring Cloud Nacos Discovery 为例,了解修改点到底有哪些:
孵化器对应的 bom 和 starter 版本依赖:
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-alibaba-dependencies</artifactId> <version>0.9.0.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency>
毕业对应的版本依赖:
<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-alibaba-dependencies</artifactId> <version>2.1.0.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency>
咱们在 GitHub 上提供了一个项目 ,详情参考这里。
用于对比毕业版本跟孵化器版本开发项目的区别。该项目使用了 Nacos Config & Nacos Discovery & Sentinel 功能,master 分支是毕业版本,incubator 分支是孵化器版本。这是使用 diff 命令比较两个分支代码的不一样点:
结论: 咱们发现只有 pom 里的包名和版本号不一致,代码层面无需任何修改。
版本的对应关系:
原文连接 本文为云栖社区原创内容,未经容许不得转载。