Dubbo 簡介
如果你還不知道什么是 Dubbo,先來一波掃盲:
Apache Dubbo 是一款高性能、輕量級的開源 Java 服務框架
Dubbo 的 6 大特性:
1、面向接口代理的高性能 RPC 調用;
2、服務自動注冊與發現;
3、智能負載均衡策略;
4、高度可擴展能力;
5、運行期流量調度;
6、可視化的服務治理與運維;
Dubbo 架構圖:
再來回顧下 Dubbo 的發展史:
2011/10/27: 阿里巴巴巴宣布 Dubbo 開源。
2012/10/23: 發布最后一個版本 2.5.3 並停止維護更新。
2017/07/31: 起死回生,官方宣布開啟重新更新,並會得到重點維護,參考:Dubbo 宣布重新開始維護。
2017/09/07: 發布起死回生的第一個版本:dubbo-2.5.4。
2018/01/08:
1、Dubbo 團隊透露 Dubbo 3.0 宣布正式開工,參考:重大利好,Dubbo 3.0要來了。
2、發布了 dubbo-2.6.0 版本,主要合並了由當當網開源的 dubbox 項目分支。PS:dubbo停止維護期間,當當網基於 dubbo 開源了dubbox。
2018/01/22: Dubbo Spring Boot 版正式發布:dubbo-spring-boot-starter v1.0.0 公測版。
2018/02/09: Dubbo 通過投票正式進入 Apache 基金會孵化器,更新了 Apache 官方域名,也不再僅限於 Java 語言。
參考:
2019/05/20: Apache 軟件基金會宣布 Dubbo 正式畢業,成為 Apache 的頂級項目。
Dubbo3 王者歸來
前幾天 Dubbo 3.0.0 正式發布了:
Maven 依賴已更新:
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo</artifactId>
<version>3.0.0</version>
</dependency>
Dubbo3 是在雲原生背景下誕生的,使用 Dubbo 構建的微服務遵循雲原生思想,能更好的復用底層雲原生基礎設施、貼合雲原生微服務架構。
另外,Dubbo 3.0.0 幾乎兼容 2.7.x 所有行為。 因為,Dubbo3 是基於 Dubbo2 演進而來,在保持原有核心功能特性的同時, Dubbo3 在易用性、超大規模微服務實踐、雲原生基礎設施適配等幾大方向上進行了全面升級。
再來看看更新了啥:
Dubbo 3.0.0 核心功能
1、應用級服務發現機制;
2、下一代 RPC 協議:Triple;
Triple 協議是 Dubbo3 的主力協議,完整兼容 gRPC over HTTP/2,並在協議層面擴展了負載均衡和流量控制相關機制。
3、全新的路由規則;
4、顯著提升性能;
5、Kubernetes 服務集成;
Dubbo 3.0.0 擴展
Dubbo 核心不再提供第三方 SDK 擴展,需要通過 dubbo-spi-extensions 項目來支持。
目前支持的擴展有:
1、Zookeeper 作為注冊中心、元數據報告、配置中心;
2、Nacos 作為注冊中心、元數據報告、配置中心;
3、Kubernetes 作為注冊中心;
4、Redis 作為元數據報告;
5、Apollo 作為配置中心;
6、Hessian2 和 jdk 作為默認序列化器;
7、Triple 協議支持 Protobuf;
Dubbo 3.0.0 升級提醒
1、基於 Spring 的相關配置列表可能會發生變更,請留言官方升級文檔;
2、為了高度兼容性,Dubbo 3 早期版本會默認開啟多重注冊,多重訂閱;
棧長有話說
Dubbo 也算是老牌的 RPC 框架了,由阿里開源,一度在國內流行成為最主流的 RPC 框架。
遺憾的是,Dubbo 並沒有舉起大旗,中間停更了幾年,后面又重啟維護並捐獻給了 Apache 軟件基金會,但隨着近些年來微服務的盛行,以及 Spring Cloud 的異軍突起,Dubbo 的光芒早已不在,現在也變得越來越暗淡。。
為什么這么說?
給我第一的直覺是,這次 Dubbo 這么大的版本發布,這都發布好幾天了,卻幾乎沒有什么報道,目前官網也沒有通報,只是在 Github 進行版本升級了,這着實讓我感覺有點悲涼。。
我真是倒吸一口涼氣!反觀 Spring Cloud,天然結合 Spring Boot,幾乎每一個小小的修復版本,都會出現很多解讀,從活躍度和應用程度看,Spring Cloud 已經是事實的王者了。。
沒錯,前些年,隨着 Dubbo 的停更,給 Dubbo 是造成了不少負面影響,國內技術人對 Dubbo 也逐漸失去信心,后面即使當當搞出了擴展版 Dubbox 也無濟於事,隨着 Spring Cloud 大行其道,很多公司都相繼從 Dubbo/ Dubbox 遷移到了 Spring Cloud 體系了。
即使如此,也不排除 Dubbo 是一個優秀的 RPC 框架,現在也還是有很多公司在用的,我們從官網可以看到:
說實話,Dubbo 和 Spring Cloud 我都用過,個人而言,相比 Spring Cloud Restful 的調用方式,我更傾向於 Dubbo 的基於接口代理的調用方式,純 Java 支持,面向接口編程,調用遠程服務就像調用本地接口一樣直接。
另外,雖然 Spring Cloud 全家桶組件是很全,社區也很活躍,但也有很大的困擾,那就是版本變化太快了,不斷的升級,各種組件的廢除、重構、更換,Spring Cloud 框架版本升級已變成技術人員的惡夢。。
現在很多人開口閉口都是微服務,有幾家公司能真正有規模上微服務的?我想很多公司也都是為趕技術潮流,怕被淘汰,為了應用而應用,盲目應用恐怕是弊大於利。
所以,也沒有必要盲目追從最新的技術吧,技術都是為業務服務的,Dubbo 如果用的很好了,就沒必要遷移到 Spring Cloud 上面去踩坑!
但是,我們也不能忘記學習,可以不用,但不能不去了解、學習,技術人要有居安思危的意識,畢竟 Spring Cloud 是主流趨勢(我也寫了一系列 Spring Cloud 教程,可以關注公眾號Java技術棧,在菜單中閱讀,我都整理好了),但還不是很成熟穩定,如果公司要用的話,最好先拿個邊緣項目試水吧……
最后,你們用的什么服務化框架?歡迎投票~
最最后,我們還是期待 Dubbo 再創輝煌吧!
后續棧長也會繼續關注並分享 Java 系列教程和資訊,關注公眾號Java技術棧第一時間推送。
參考資料:
https://github.com/apache/dubbo/releases
版權申明:本文系公眾號 "Java技術棧" 原創,原創實屬不易,轉載、引用本文內容請注明出處,禁止抄襲、洗稿,請自重,尊重他人勞動成果和知識產權。
近期熱文推薦:
1.1,000+ 道 Java面試題及答案整理(2021最新版)
2.終於靠開源項目弄到 IntelliJ IDEA 激活碼了,真香!
3.阿里 Mock 工具正式開源,干掉市面上所有 Mock 工具!
4.Spring Cloud 2020.0.0 正式發布,全新顛覆性版本!
覺得不錯,別忘了隨手點贊+轉發哦!