Dubbo3詳解(5大新特性及功能圖解)
來源:mikechen的網際網路架構
Dubbo3在原有框架上進行了全面升級,包括Service Mesh方案等環節,下面我就來全面詳解Dubbo3.0@mikechen
Dubbo簡介
Apache Dubbo 是一款微服務開發框架,它提供了 RPC通訊,以及微服務治理 兩大關鍵能力,致力於高效能透明化的遠端服務呼叫方案。
這意味著,使用 Dubbo 開發的微服務,將具備相互之間的遠端發現與通訊能力, 同時利用 Dubbo 提供的豐富服務治理能力,可以實現諸如服務發現、負載均衡、流量排程等服務治理訴求。同時 Dubbo 是高度可擴充套件的,使用者幾乎可以在任意功能點去定製自己的實現,以改變框架的預設行為來滿足自己的業務需求。
Dubbo功能
Dubbo核心功能,主要提供了:遠端方法呼叫、智慧容錯和負載均衡、提供服務自動註冊、自動發現等高效服務治理功能。
Dubbo元件
1)服務提供者(Server)
對外提供後臺服務,將自己的服務資訊,註冊到註冊中心
2)註冊中心(Registry)
用於服務端註冊遠端服務以及客戶端發現服務。
目前主要的註冊中心可以藉由 zookeeper,eureka,consul,etcd 等開源框架實現。
比如:阿里的Dubbo就是採用zookeeper實現註冊中心。
3)服務消費者(Client)
從註冊中心獲取遠端服務的註冊資訊,然後進行遠端過程呼叫。
4)監控(Monitor)
為了更好的除錯,發現問題,需要監控,因此Dubbo引入了監控中心,可以對消費者和提供者進行管理。
Dubbo呼叫流程
Dubbo呼叫流程,大致分為如下11步:
Dubbo發展歷程
dubbo的發展歷程,經歷過如下階段:
大致總結為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(網格),它描述了服務間的依賴形態,就像下面這張網一樣。
其中深色的是我們平時工作中接觸最多的業務微服務,旁邊藍色的被稱為邊車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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Linux mv命令格式及功能詳解!Linux
- C#–特性詳解C#
- 全面煥新|詳解 Grafana v9.0.x 新增功能特性Grafana
- 核心級流量治理引擎Kmesh八大新特性解讀
- Apache Superset 1.2.0教程 (三)—— 圖表功能詳解Apache
- ES10特性詳解
- Android Studio 新特性詳解Android
- Java記憶體模型最全詳解(5大模型圖解)Java記憶體大模型圖解
- Swift 5新特性詳解:ABI 穩定終於來了!Swift
- H5-4 圖片路徑詳解H5
- 詳解C#7.0新特性C#
- JDK8新特性詳解JDK
- JDK9新特性詳解JDK
- JDK10新特性詳解JDK
- JDK11新特性詳解JDK
- JDK12新特性詳解JDK
- JDK13新特性詳解JDK
- Java8 新特性詳解Java
- Elasticsearch 8.X Rollup 功能詳解及避坑指南Elasticsearch
- 打破 Serverless 落地邊界,阿里雲 SAE 釋出 5 大新特性Server阿里
- Q-Q圖原理詳解及Python實現Python
- Nginx高階功能詳解Nginx
- ABAQUS 2022新增功能詳解
- Apollo功能及原理詳解
- 詳解C#特性和反射(四)C#反射
- 詳解C#特性和反射(三)C#反射
- 詳解C#特性和反射(二)C#反射
- 詳解C#特性和反射(一)C#反射
- JDK8新特性詳解(二)JDK
- JDK8新特性詳解(一)JDK
- 讓網際網路更快,Server Push 特性及開啟方式詳解Server
- 合成複用原則詳解篇(附圖解及原始碼例項)圖解原始碼
- UCloud可用區的設計理念及功能圖文詳解Cloud
- NET5 ORM 六大新功能 - SqlSugar 5.0.2.7ORMSqlSugar
- Java泛型詳解,史上最全圖文詳解!Java泛型
- Android 向量圖詳解Android
- UML類圖詳解
- 快取穿透詳解及解決方案快取穿透