相信你們對上週的 《來自 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 裏的包名和版本號不一致,代碼層面無需任何修改。
版本的對應關係:
原文連接 本文爲雲棲社區原創內容,未經容許不得轉載。