Spring 社區(qū)的首個國產(chǎn)開源項目順利畢業(yè)了(Spring Cloud Alibaba )

Spring Cloud Alibaba 于 2018年7月27日 在 Spring Cloud 孵化器倉庫提交第一次代碼酪刀,到 2019年8月1日 在 Alibaba 倉庫發(fā)布第一個畢業(yè)版本终惑,時間將近整整一年。

一年時間,Spring Cloud Alibaba 完成了從 Spring Cloud 最默默無聞的項目到 Spring Cloud 最火項目的蛻變,并且從孵化器倉庫畢業(yè)了木西!

Spring Cloud Alibaba 的正式畢業(yè)離不開社區(qū)的幫助义桂,非常感謝 Spring Cloud Alibaba 的 contributor找筝,也非常感謝社區(qū)開源愛好者們創(chuàng)建的 issue蹈垢,每一個 issue 都是對 Spring Cloud Alibaba 的幫助慷吊。


Spring Cloud Alibaba 畢業(yè)過程中的一些小插曲

1、在 5 月底的時候曹抬,Spring Cloud Alibaba Team 跟 Spring Cloud Team 有過一次畢業(yè)的溝通溉瓶,并且準備在 Spring Cloud Hoxton 正式發(fā)布的時候宣布 Spring Cloud Alibaba 畢業(yè)。只不過后來 Spring Cloud 官方調(diào)整了項目策略谤民,需要進行倉庫遷移堰酿。雙方 team 后續(xù)還因此開了一個視頻會議,Spring Cloud Alibaba 因此提前畢業(yè)张足。

2触创、Spring Cloud Team 希望畢業(yè)后的 starter 命名方式跟 spring boot starter 規(guī)定的格式一致,以 alibaba-<X>-spring-cloud-starter 的格式進行命令为牍『甙螅考慮到孵化器的 starter 都是以 spring-cloud-starter-alibaba-<X> 開頭,Spring Cloud Alibaba 并不想破壞原有的規(guī)則碉咆。最終雙方討論了好多次才決定沿用老的 starter 命名方式抖韩。

3、在倉庫遷移后的幾天時間內(nèi)疫铜,有社區(qū)的開源愛好者專門創(chuàng)建 issue 提問為何離開 spring cloud 倉庫茂浮,Spring Cloud Alibaba 被各種質(zhì)疑。后來 Spring Cloud Leader - Spencer Gibb 在 issue 上回復(fù)進行了解釋壳咕。

4席揽、Spring Cloud Alibaba 本來計劃是 6 月份發(fā)布畢業(yè)版本,結(jié)果拖到了現(xiàn)在谓厘。為了引起不必要的輿論風險幌羞,我們一直在等待 Spring Cloud Team 官方的公告發(fā)布,期間跟 Spring Cloud Team 溝通了好多個晚上(有 12 小時時差)庞呕。


官方文章解讀

官方文章內(nèi)容寫得有點多新翎,我們翻譯一下并做個簡單的總結(jié):

集成到 Spring Cloud Release Train 帶來的不便:

項目的維護者不能自行發(fā)版,從而無法與項目集成的技術(shù)組件的 roadmap 保持一致住练,必須等到 Spring Cloud 的下一個 Release Train 才能發(fā)布新的版本更新集成的技術(shù)組件地啰。?

項目的維護者沒有辦法看到關(guān)鍵的統(tǒng)計數(shù)據(jù),如 github 中的關(guān)鍵數(shù)據(jù)讲逛, 以及在依賴被下載了多少次亏吝。

以下的這些合作,其實與在不在 Spring Cloud Release Train 中沒有關(guān)系:

Spring Cloud Team 會參與到項目中盏混,進行代碼 review 幫助更好地集成到 Spring Cloud 蔚鸥。

Spring Cloud Alibaba Starter 會加入到 start.spring.io 中惜论,供用戶選擇。

Spring Team 會將 Spring Cloud Alibaba 項目放在官方介紹頁上https://spring.io/projects/spring-cloud-alibaba止喷,介紹項目重要的一些發(fā)版和功能特性馆类。

倉庫遷移對于開發(fā)者來說,實際意味著什么弹谁?

從 Spring Cloud 的 github 中遷移并不是意味著這些項目的開發(fā)和維護模式有改變乾巧,Spring Cloud Alibaba Team & Spring Cloud Team 仍然維護著項目。

新的模式意味著 groupId 會發(fā)生改變预愤,甚至有些項目的 artifactId 會改變沟于,項目中的 package name 也會發(fā)生變化。需要用戶側(cè)代碼修改植康。

開發(fā)人員需要明確地在開發(fā)中指明依賴的版本旷太,不能通過 Spring Cloud BOM 繼承依賴。

作為先行者销睁,Spring Cloud Alibaba 將會首先遵循新的策略供璧,Spring Cloud Alibaba 在畢業(yè)這個重大的時機遷移是一個合適的時間。未來大家會看到更多的 組件從 Spring Cloud Release Train 中遷移出去榄攀。

本次畢業(yè)版本的 release note

1嗜傅、Greenwich 對應(yīng)的版本支持此 Greenwich.SR2 版本

2、Finchley 對應(yīng)的版本支持此 Finchley.SR4 版本

3檩赢、Sentinel

sentinel 相關(guān)依賴的版本更新至 1.6.3吕嘀。Sentinel 各版本的 release 信息:https://github.com/alibaba/Sentinel/releases

#615:支持 Spring Cloud Gateway,spring-cloud-alibaba-sentinel-zuul重命名為spring-cloud-alibaba-sentinel-gateway贞瞒。該模塊實現(xiàn)了 Sentinel 適配網(wǎng)關(guān)(Spring Cloud Gateway, Netflix Zuul)相關(guān)的邏輯

#614:支持 WebFlux,spring-cloud-alibaba-starter-sentinel內(nèi)部分別適配了 WebServlet 和 WebFlux

#626:Sentinel OpenFeign 場景下解決了接口繼承場景下調(diào)用父類接口方法出錯的 bug

#782:Sentinel OpenFeign 場景下解決了接口中存在 default 方法下調(diào)用 default 方法出錯的 bug

#741 #615:新增網(wǎng)關(guān)和http-method-specify相關(guān)的配置

#716:優(yōu)化了SlotChainBuilder的加載邏輯偶房,確保非網(wǎng)關(guān)場景下 HotParamSlotChainBuilder 生效,網(wǎng)關(guān)場景下SlotChainBuilder生效

#707:刪除 DataSource 相關(guān)的加載日志军浆,改由 Sentinel 自身的 SPI 實現(xiàn)(未來實現(xiàn))?

#265:添加SentinelHealthIndicator用于查詢 Sentinel 的健康狀態(tài)

Nacos Discovery

nacos-client 版本更新至 1.1.1棕洋。Nacos 各版本的 release 信息:https://github.com/alibaba/nacos/releases

#765:添加心跳相關(guān)的配置參數(shù)。包括 心跳的周期乒融、心跳超時時間以及實例刪除的超時時間?

#669:添加NacosRule支持權(quán)重的 Ribbon 路由規(guī)則

#728:支持?ServiceRegistryEndpoint對當前應(yīng)用服務(wù)狀態(tài)的操作/查詢

?#708:支持與 Spring Cloud Config 共同使用

#650:適配?ServerIntrospector掰盘,可獲取 metadata 以及 secure 信息

#644:NacosWatch刪除內(nèi)部邏輯,只進行HeartbeatEvent事件的發(fā)送

Nacos Config

nacos-clinet 版本更新至 1.1.1赞季。Nacos 各版本的 release 信息:https://github.com/alibaba/nacos/releases

#652:修復(fù)NacosConfigEndpoint線程不安全的 bug

RocketMQ Binder

#541:適配MessageSource,consumer 端可以注入?PollableMessageSource進行消息的拉取

#709:解決不同 jvm 下 instanceName 相同導(dǎo)致 rebalance 失敗的 bug

Dubbo Spring Cloud

dubbo 版本更新至 2.7.3愧捕。Dubbo 各版本的 release 信息:https://github.com/apache/dubbo/releases

#589:ip 獲取策略使用 Spring Cloud 官方的InetUtils工具獲取

#592:Spring Cloud 注冊中心配置spring-cloud://localhost成為可選項,默認直接沿用原生的 Spring Cloud 注冊中心

#623:為服務(wù)實例的變化新增監(jiān)聽機制?

#591:修復(fù)某些場景下啟動報 NPE 的 bug

#600:不再強依賴 spring-boot-actuator申钩,成為可選依賴?

Seata

seata 版本更新至 0.7.1次绘。Seata 各版本的 release 信息,點擊這里

#686:修復(fù)負載均衡的 FeignClient 場景下 xid 傳遞失敗的 bug


Thanks for the contributors: @Rivers-Shall, @ly641921791, @JevonYang, @cdfive, @eacdy, @pyhblacksky, @george510257, @AbelSara, @slievrly, @pigxcloud, @lovepoem, @liudaomanbu, @lujian0571, @jsbxyyx, @pengzai170, @hero-zhanghao, @wzlee, @xingfudeshi


Roadmap

Spring Boot Admin 是一個開源社區(qū)項目邮偎,用于管理和監(jiān)控 SpringBoot 應(yīng)用程序管跺。但是它沒有跟 Spring Cloud 做深度的整合。我們希望做一個 Spring Cloud Admin禾进,它能提供如下功能:

增加服務(wù)治理控制臺豁跑,整合微服務(wù)控制能力

服務(wù)查詢、管理

配置管理

限流降級等

項目管理/監(jiān)控

參考 Spring Cloud Azure Playground?http://azure-spring-cloud.azurewebsites.net/?命迈,創(chuàng)造 Spring Cloud Alibaba Playground贩绕,把一些最佳實踐,視頻教程壶愤,自動生成項目等功能放上去。

增加 Spring Cloud Alibaba 最佳實踐項目馏鹤。

針對 Spring Cloud Alibaba 各種特性征椒,開發(fā)對應(yīng)的實戰(zhàn) Demo。

替換 Spring Cloud 服務(wù)調(diào)用客戶端 OpenFeign & Ribbon湃累。開發(fā)更通用的服務(wù)調(diào)用客戶端勃救,替換 Spring Cloud 服務(wù)調(diào)用客戶端 OpenFeign & Ribbon。


Committer 機制

項目遷移到 Alibaba 自身的 GitHub 倉庫后治力,不像在 spring-cloud-incubator 倉庫中那樣沒有權(quán)限發(fā)展 committer蒙秒。我們現(xiàn)在有權(quán)限發(fā)展 contributor 成為 committer。任何人只要在 Spring Cloud Alibaba 項目上提交了 Pull Request 并且被 merge宵统,就可以成為 contributor晕讲;contributor 晉升為為 committer,需要這些條件:

1马澈、至少提交 5 個有分量的 Pull Request

2瓢省、參與 issue 列表的維護及重要 feature 的討論

3、參與 code review

希望有越來越多的開源愛好者能夠成為 Spring Cloud Alibaba 的 contributor 或 committer痊班,讓我們共同完善 Spring Cloud 生態(tài)勤婚。


畢業(yè)后用戶側(cè)代碼修改

倉庫遷移必定涉及到代碼修改。我們總結(jié)修改點有 3 點:

1反砌、包名 package name

2蜻牢、版本號 version number

3消返、如果用到了 Spring Cloud Alibaba 內(nèi)部類,需要 reimport 這些類(少部分情況才需要改祝迂,大部分情況這些類都被 AutoConfiguration 屏蔽了)

以使用 Spring Cloud Alibaba Bom 和 Spring Cloud Nacos Discovery 為例,了解修改點到底有哪些:


孵化器對應(yīng)的 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>

畢業(yè)對應(yīng)的版本依賴:

<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 上提供了一個項目 豆村,點擊這里液兽,了解更多,用于對比畢業(yè)版本跟孵化器版本開發(fā)項目的區(qū)別。該項目使用了 Nacos Config & Nacos Discovery & Sentinel 功能四啰,master 分支是畢業(yè)版本宁玫,incubator 分支是孵化器版本。這是使用 diff 命令比較兩個分支代碼的不同點:

結(jié)論:?我們發(fā)現(xiàn)只有 pom 里的包名和版本號不一致柑晒,代碼層面無需任何修改欧瘪。

版本的對應(yīng)關(guān)系:

版本的對應(yīng)關(guān)系

項目地址:https://github.com/alibaba/spring-cloud-alibaba

原文地址:https://www.v2tn.com/content/5d4a871324aa9a00017d24fe

了解更多技術(shù),掃一掃關(guān)注我們
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末匙赞,一起剝皮案震驚了整個濱河市佛掖,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌涌庭,老刑警劉巖芥被,帶你破解...
    沈念sama閱讀 212,718評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異坐榆,居然都是意外死亡拴魄,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評論 3 385
  • 文/潘曉璐 我一進店門席镀,熙熙樓的掌柜王于貴愁眉苦臉地迎上來匹中,“玉大人,你說我怎么就攤上這事豪诲《ソ荩” “怎么了?”我有些...
    開封第一講書人閱讀 158,207評論 0 348
  • 文/不壞的土叔 我叫張陵屎篱,是天一觀的道長服赎。 經(jīng)常有香客問我,道長芳室,這世上最難降的妖魔是什么专肪? 我笑而不...
    開封第一講書人閱讀 56,755評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮堪侯,結(jié)果婚禮上嚎尤,老公的妹妹穿的比我還像新娘。我一直安慰自己伍宦,他們只是感情好芽死,可當我...
    茶點故事閱讀 65,862評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著次洼,像睡著了一般关贵。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上卖毁,一...
    開封第一講書人閱讀 50,050評論 1 291
  • 那天揖曾,我揣著相機與錄音落萎,去河邊找鬼。 笑死炭剪,一個胖子當著我的面吹牛练链,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播奴拦,決...
    沈念sama閱讀 39,136評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼媒鼓,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了错妖?” 一聲冷哼從身側(cè)響起绿鸣,我...
    開封第一講書人閱讀 37,882評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎暂氯,沒想到半個月后潮模,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,330評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡株旷,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,651評論 2 327
  • 正文 我和宋清朗相戀三年再登,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片晾剖。...
    茶點故事閱讀 38,789評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖梯嗽,靈堂內(nèi)的尸體忽然破棺而出齿尽,到底是詐尸還是另有隱情,我是刑警寧澤灯节,帶...
    沈念sama閱讀 34,477評論 4 333
  • 正文 年R本政府宣布循头,位于F島的核電站,受9級特大地震影響炎疆,放射性物質(zhì)發(fā)生泄漏卡骂。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,135評論 3 317
  • 文/蒙蒙 一形入、第九天 我趴在偏房一處隱蔽的房頂上張望全跨。 院中可真熱鬧,春花似錦亿遂、人聲如沸浓若。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽挪钓。三九已至,卻和暖如春耳舅,著一層夾襖步出監(jiān)牢的瞬間碌上,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留馏予,地道東北人天梧。 一個月前我還...
    沈念sama閱讀 46,598評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像吗蚌,于是被迫代替她去往敵國和親腿倚。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,697評論 2 351