哈喽各位同學們大家好呀,小編今天帶着開發者學院中課程“Dubbo分布式架構介紹與3.0新特性”幹貨總結來了~一起學習新課程吧!
課程連結以及圖譜位址小編已經為大家指路了,搭配學習效果更佳👇
課程名稱:Dubbo 分布式服務治理實踐
課程位址:
https://developer.aliyun.com/learning/course/72/detail/1185?spm=a2c6h.21258778.0.0.6abe6a00IzvBvY圖譜名稱:Alibaba Java 技術圖譜
圖譜位址:
https://developer.aliyun.com/graph/java?spm=a2c6h.21110250.J_5703890090.6.700e3c67EjOBeJDubbo 分布式服務治理實踐
一、Dubbo課程環境介紹
1)阿裡Java開發者學院2021最新課程
Dubbo相比傳統分布式架構有很大差别,Dubbo本身解決的問題不僅僅是服務調用,緻力于提供高性能和透明化的RPC遠端服務調用方案,以及SOA服務治理方案。是以相比傳統RPC,在架構層次上又做了一次很重要的更新,這個課程是作為Java服務課程前置的非常重要的學習課程。
阿裡巴巴專家親自授課,覆寫最新Spring Cloud微服務架構:

2)Dubbo分布式服務治理架構實戰—步步為赢
如果是剛工作不久的同學,可以看一下 Java的進階程式設計知識,包括我虛拟機、多線程等程式設計架構。希望大家在做架構師對公司架構有深入、系統的研究。回顧整個Dubbo分布式架構,在開源社群的影響非常大,主要在微服務架構流行之前,實際已經在做大規模的分布式服務叢集的開發、落地、治理工作。Dubbo很多經典設計模式和思想挑戰性問題,目前在微服務架構中用到了相同的技術條件和問題,有很重要的參考、對比價值。
在做架構師技術選型的時候,不能隻會一個架構,很多公司的架構實際是定死的,作為架構師照搬就行。但是對于架構師的要求來說,還是希望能夠精通多種架構方式,這樣在應對不同的問題、不同的場景的時候,能有更多合理性選擇。
Dubbo從理論到架構設計模式,逐漸帶入實戰練習,模拟訂單服務、模拟機群,用戶端實作調用操作。在實戰過程中,希望大家把其他的元件給用起來,比如說 Dubbo注冊中心等,逐漸聯系起來。當然Dubbo本身也有自己的監控元件,有自己的熔斷機制。
二、Dubbo3.0分布式服務治理架構新特性
1)分布式服務治理架構Dubbo介紹
Dubbo已經發展到3.0,經過很長時間疊代,在阿裡巴巴集團内部大量使用,在官網上有介紹。回顧整個分布式架構發展曆史,淘寶誕生在2003年,經曆過非常典型的各種分布式架構發展過程,淘寶本身有自己的分布式架構 hsf,hsf和Dubbo設計思想有很多相似之處,協定、叢集治理也有很多重合的地方。但是Dubbo本身是使用的更廣泛,在業界影響力更大。
Dubbo優秀的地方在于,整個架構誕生在SOS時代,但是有RPC思想的影子,相比傳統的RPC架構,Dubbo走的路線更高了一個層級,做大規模服務的解耦和治理的工作,管控服務,實作服務的查找、發現、負載均衡、上線下線以及流量管控等功能。
今天來看,不僅阿裡巴巴,行業裡面有很多公司在用Dubbo架構,阿裡在2017年又重新啟動了Dubbo開源工作,發展的越來越完善。但是Dubbo本身并不是一個強大的體系,還要借助其他的技術元件,實作整個服務治理工作。
分布式服務治理架構Dubbo介紹總結:
1. Dubbo是一個阿裡巴巴開源的分布式RPC服務治理架構;
2. 緻力于提供高性能和透明化的RPC遠端服務調用方案;
3. 是阿裡巴巴SOA服務化治理方案的核心架構;
4. 每天為2,000+個服務提供3,000,000,000+次通路量支援;
5. 并被廣泛應用于阿裡巴巴集團的各成員站點。
6. 官方網站
http://dubbo.io/;
7. 源碼:
https://github.com/alibaba/dubbo8. 下載下傳:
http://repo1.maven.org/maven2/com/alibaba/dubbo9. 微網誌:
http://weibo.com/dubbo。
2)Dubbo發展曆程
Dubbo 2008年誕生,後面有一段時間不維護了,開源項目也會受到成員工作繁忙程度等因素的影響。2017年又重新啟動,進入孵化器。2020年啟動3.0,開啟微服務時代,對Dubbo進行更新擴充,在微服務時代Dubbo向新的層級進行相容和支援。
3)Dubbo3.0—架構更新擴充:多協定+雲原生
Dubbo之前也支援各種不同的通訊協定、虛拟化協定,而且部署方式相比的HSF更多元化、更靈活。目前在設計角度很明顯的增強,是開始支援GRPC行業級協定,成為行業标準。很多接口都用包括K8S,大量排程。另外像HTTP2,是HTTP協定新的更新版本,包括負載均衡政策以及路由政策都定了增強,這些Dubbo做的比較好的地方。Dubbo在3.0以後,整個生态會變得更強大,多協定向雲原生靠攏。
4)Dubbo服務治理架構
整體來說,Dubbo本身是作為一個非常優秀的服務治理,服務治理指的并不是簡單SOA架構,指的是大規模服務叢集的量級,是Dubbo較強大的地方。當然如果隻有一個服務兩個服務的話,Dubbo也可以做,理論上可以支援更高、更複雜的架構。Dubbo服務治理架構總結:
1. SOA架構解決架構的異構互動問題;
2. 可以實作不同語言直接功能接口的重用;
3. 普通的服務架構解決開發Web服務接口開發;
4. 服務注冊+ 服務管理+ 服務發現+健康監控;
5. Dubbo是一個分布式RPC SOA服務治理架構;
6. 緻力于提供高性能和透明化的RPC遠端服務調用方案;
7. 是阿裡巴巴SOA服務化治理方案的核心架構;
8. 每天為2,000+個服務;
9. 提供3,000,000,000+次通路量支援;
10. 并被廣泛應用于阿裡巴巴集團的各成員站點。
5)阿裡巴巴Dubbo架構演化
Dubbo誕生的時間比較早,做架構設計的時候,看到包括單體、分層、分布式架構、微服務架構等,Dubbo是在不斷的做疊代、擴充、演化。在架構改造上Dubbo是越來越豐富,協定上是越來越越複雜,也支援多元化。
Java Spring Cloud目前來看,主要還是REST API協定,對于公網是一個很好的選擇,但是對于區域網路,尤其是系統架構全部是Java,統一語言的場景的情況下,用同一種協定更好。比如更接近于TPP協定的通訊協定效率會更高。
實際上比較好的分布式架構,應該盡量适用公網和區域網路通信的兩種不同場景,Dubbo就具備這種特征。
6)SOA架構演化
1. 單一應用架構
• 當網站流量很小時,隻需一個應用,将所有功能都部署在一起,以減少部署節點和成本。
• 此時,用于簡化增删改查工作量的 資料通路架構(ORM) 是關鍵。
2. 垂直應用架構
• 當通路量逐漸增大,單一應用增加機器帶來的加速度越來越小,将應用拆成互不相幹的幾個應用,以提升效率。
• 此時,用于加速前端頁面開發的 Web架構(MVC) 是關鍵。
3. 分布式服務架構
• 當垂直應用越來越多,應用之間互動不可避免,将核心業務抽取出來,作為獨立的服務,逐漸形成穩定的服務中心,使前端應用能更快速的響應多變的市場需求。
• 此時,用于提高業務複用及整合的 分布式服務架構(RPC) 是關鍵。
4. 流動計算架構
• 當服務越來越多,容量的評估,小服務資源的浪費等問題逐漸顯現,此時需增加一個排程中心基于通路壓力實時管理叢集容量,提高叢集使用率。
• 此時,用于提高機器使用率的 資源排程和治理中心(SOA) 是關鍵。
7)Dubbo優缺點
1. 透明化的遠端方法調用
• 像調用本地方法一樣調用遠端方法;隻需簡單配置,沒有API侵入。
2. 軟負載均衡及容錯機制
• 可在内網替代nginx lvs等硬體負載均衡器。
3. 服務注冊中心自動注冊 & 配置管理
• 不需要寫死服務提供者位址,基于接口名自動查詢提供者。使用類似zookeeper等分布式協調服務作為服務注冊中心,可以将絕大部分項目配置移入zookeeper叢集。
4. 服務接口監控與治理
• Dubbo-admin與Dubbo-monitor提供了完善的服務接口管理與監控功能,針對不同應用的不同接口,可以進行 多版本,多協定,多注冊中心管理。
8)Dubbo&HSF&Spring Cloud對比
大家在做技術選型的時候,如果你選Spring Cloud做微服架構是可以的,它的整個體系比較完善,元件體系應該有50個左右非常多,而且比較完善,阿裡也貢獻了Spring Cloud一系列架構,整個社群項目非常完善,是做微服務的一個選擇。
Dubbo現在也開始支援REST API,成為微服務有效版圖中的一塊。Dubbo更強的是,做企業區域網路分布式架構的大規模叢集改造,用Dubbo協定層次上會做的更優秀。
淘寶的HSF相對來說生态沒有那麼好,主要是在阿裡内部有,而Dubbo在社群内遍地開花,成為頂級項目,這是Dubbo比較優秀的地方。