Dubbo3詳解(5大新特性及功能圖解)

帶你聊技術發表於2023-05-10

來源:mikechen的網際網路架構


Dubbo3詳解(5大新特性及功能圖解)

Dubbo3在原有框架上進行了全面升級,包括Service Mesh方案等環節,下面我就來全面詳解Dubbo3.0@mikechen

Dubbo3詳解(5大新特性及功能圖解)


Dubbo簡介

Apache Dubbo 是一款微服務開發框架,它提供了 RPC通訊,以及微服務治理 兩大關鍵能力,致力於高效能透明化的遠端服務呼叫方案。

這意味著,使用 Dubbo 開發的微服務,將具備相互之間的遠端發現與通訊能力, 同時利用 Dubbo 提供的豐富服務治理能力,可以實現諸如服務發現、負載均衡、流量排程等服務治理訴求。同時 Dubbo 是高度可擴充套件的,使用者幾乎可以在任意功能點去定製自己的實現,以改變框架的預設行為來滿足自己的業務需求。

 

Dubbo功能

Dubbo核心功能,主要提供了:遠端方法呼叫、智慧容錯和負載均衡、提供服務自動註冊、自動發現等高效服務治理功能。

 

Dubbo元件

Dubbo3詳解(5大新特性及功能圖解)

1)服務提供者(Server)

對外提供後臺服務,將自己的服務資訊,註冊到註冊中心

2)註冊中心(Registry)

用於服務端註冊遠端服務以及客戶端發現服務。

目前主要的註冊中心可以藉由 zookeeper,eureka,consul,etcd 等開源框架實現。

比如:阿里的Dubbo就是採用zookeeper實現註冊中心。

3)服務消費者(Client)

從註冊中心獲取遠端服務的註冊資訊,然後進行遠端過程呼叫。

4)監控(Monitor)

為了更好的除錯,發現問題,需要監控,因此Dubbo引入了監控中心,可以對消費者和提供者進行管理。

Dubbo3詳解(5大新特性及功能圖解)

 

Dubbo呼叫流程

Dubbo呼叫流程,大致分為如下11步:

Dubbo3詳解(5大新特性及功能圖解)

 

Dubbo發展歷程

dubbo的發展歷程,經歷過如下階段:

Dubbo3詳解(5大新特性及功能圖解)

大致總結為3段:

1.誕生阿里

dubbo前生2008年在阿里內部誕生,2011年開源,2012年釋出2.5.3版本後停止更新。

 

2.進入apache頂級專案

2017年阿里重啟dubbo專案,並於2018年進入apache孵化,2019年成為apache頂級專案。

 

3.dubbo3.o

2020年釋出3.0,往雲原生專案發展的戰略計劃。

 

Dubbo3 新特性

Dubbo3 依舊保持了 2.x 的經典架構,以解決微服務程式間通訊為主要職責,透過豐富的服務治理能力來更好的管控微服務叢集。

Dubbo3 對原有框架的升級是全面的,體現在核心 Dubbo 特性的幾乎每個環節,透過升級實現了穩定性、效能、伸縮性、易用性的全面提升。

1.全面的效能提升

對比 2.x 版本,Dubbo3 版本服務發現資源利用率顯著提升,對比介面級服務發現,單機常駐記憶體下降 50%。

對比應用級服務發現,單機常駐記憶體下降 75%,GC 次數趨零。

 

2.下一代 RPC 通訊協議

新一代的 Triple 協議基於 HTTP/2 作為傳輸層,具備更好的閘道器、代理穿透性,原生支援 Stream 通訊語義,相容 gRPC 協議。

Triple是Dubbo3 提出的基於 HTTP2 的開放協議,基於 HTTP/2 上構建的 RPC 協議,完全相容 gRPC,並在此基礎上擴充套件出了更豐富的語義。

相比於原有 Dubbo2 協議Triple 有以下優勢:

1)原生和 gRPC 協議互通

打通 gRPC 生態,降低從 gRPC 至 Dubbo 的遷移成本。

2)增強多語言生態

避免因 CPP/C#/RUST 等語言的 Dubbo SDK 能力不足,導致業務難以選型適配的問題。

3)閘道器友好

更容易到適配閘道器、Mesh架構,Triple 協議讓 Dubbo 更方便的與各種閘道器、Sidecar 元件配合工作。

4)流式通訊支援

Triple 協議支援 Request Stream、Response Stream、Bi-direction Stream。

3.Kubernetes

Dubbo3 開發的應用可以原生部署到 Kubernetes 平臺,Dubbo3 也已對接到了原生的 Kubernetes Service 體系。

4.Service Mesh

Service Mesh,是一個形象化的詞語表達:Service(服務)和Mesh(網格),它描述了服務間的依賴形態,就像下面這張網一樣。

Dubbo3詳解(5大新特性及功能圖解)

其中深色的是我們平時工作中接觸最多的業務微服務,旁邊藍色的被稱為邊車Sidecar服務。

Sidecar作為業務微服務的“代理”,處理與其他業務微服務sidecar之間的非功能需求,如網路通訊、安全、監控、流量控制等。

多個Sidecar之間的連線和互動組成了網格mesh。

Dubbo3 提供了基於自身思考的 Dubbo Mesh 解決方案,Dubbo3 規劃了兩種形態的 Service Mesh 方案:

  • 經典的基於 Sidecar 的 Service Mesh;

  • 無 Sidecar 的 Proxyless Mesh;

5.異構體系互通

典型如 Dubbo、Spring Cloud、gRPC 等,有著異構微服務體系互通的訴求,Dubbo3 藉助於新的服務發現模型以及可靈活擴充套件的 RPC 協議,可以成為 Dubbo3 未來的發展目標。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70024922/viewspace-2951192/,如需轉載,請註明出處,否則將追究法律責任。

相關文章