為什么 Dubbo 總說自己性能高?
初識 Dubbo
為什么 Dubbo 說自己性能高?
高性能要從底層的原理說起,既然是一個 RPC 框架,主要干的就是遠(yuǎn)程過程(方法)調(diào)用, 那么提升性能就要從最關(guān)鍵、最耗時的兩個方面入手:序列化和網(wǎng)絡(luò)通信。
序列化:我們學(xué)習(xí) Java 網(wǎng)絡(luò)開發(fā)的時候知道,本地的對象要在網(wǎng)絡(luò)上傳輸,必須要實現(xiàn)Serializable 接口,也就是必須序列化。我們序列化的方案很多:xml、json、二進(jìn)制流…其中效率最高的就是二進(jìn)制流(因為計算機就是二進(jìn)制的)。然而 Dubbo 采用的就是效率最高的二進(jìn)制。
網(wǎng)絡(luò)通信:不同于 HTTP 需要進(jìn)行 7 步走(三次握手和四次揮手),Dubbo 采用 Socket 通信機制,一步到位,提升了通信效率,并且可以建立長連接,不用反復(fù)連接,直接傳輸數(shù)據(jù)
別的 RPC 框架
gRPC
Thrift
HSF
……
dubbo 的前世今生
dubbo 之前一直都作為 Alibaba 公司內(nèi)部使用的框架。
2011 年,dubbo 被托管到了GitHub 上(開源)
2014 年11 月發(fā)布2.4.11版本后宣布停止更新。此后一段時間很多公司開源了自己基于Dubbo的變種版本(例如當(dāng)當(dāng)網(wǎng)的 Dubbo X,網(wǎng)易考拉的 Dubbo K)
2017 年 SpringCloud 橫空出世,Dubbo 感覺到壓力后連續(xù)更新了幾個版本2018 年 1 月,阿里公司聯(lián)合當(dāng)當(dāng)網(wǎng)將 Dubbo 和 Dubbo X 合并,發(fā)布了 2.6 版本2018 年除夕夜阿里將 Dubbo 貢獻(xiàn)給了 Apache 基金會
2018 除夕夜至今,Apache 維護(hù)和更新 Dubbo
dubbo 概述
Apache Dubbo (incubating) |?d?b??| 是一款高性能、輕量級的開源 Java RPC 框架,它提供了三大核心能力:面向接口的遠(yuǎn)程方法調(diào)用,智能容錯和負(fù)載均衡,以及服務(wù)自動注冊和發(fā)現(xiàn)。
Dubbo 是一個分布式服務(wù)框架,致力于提供高性能和透明化的 RPC 遠(yuǎn)程服務(wù)調(diào)用方案、服務(wù)治理方案。
特性:
面向接口代理:調(diào)用接口的方法,在 A 服務(wù)器調(diào)用 B 服務(wù)器的方法,由 dubbo 實現(xiàn)對 B 的調(diào)用,無需關(guān)心實現(xiàn)的細(xì)節(jié),就像MyBatis 訪問 Dao 的接口,可以操作數(shù)據(jù)庫一樣。不用關(guān)心 Dao 接口方法的實現(xiàn)。這樣開發(fā)是方便,舒服的。
基本架構(gòu)
服務(wù)提供者(Provider):暴露服務(wù)的服務(wù)提供方,服務(wù)提供者在啟動時,向注冊中心注冊自己提供的服務(wù)。
服務(wù)消費者(Consumer): 調(diào)用遠(yuǎn)程服務(wù)的服務(wù)消費方,服務(wù)消費者在啟動時,向注冊中心訂閱自己所需的服務(wù),服務(wù)消費者,從提供者地址列表中,基于軟負(fù)載均衡算法,選一臺提供者進(jìn)行調(diào)用,如果調(diào)用失敗,再選另一臺調(diào)用。
注冊中心(Registry):注冊中心返回服務(wù)提供者地址列表給消費者,如果有變更,注冊中心將基于長連接推送變更數(shù)據(jù)給消費者
監(jiān)控中心(Monitor):服務(wù)消費者和提供者,在內(nèi)存中累計調(diào)用次數(shù)和調(diào)用時間,定時每分鐘發(fā)送一次統(tǒng)計數(shù)據(jù)到監(jiān)控中心
調(diào)用關(guān)系說明:
服務(wù)容器負(fù)責(zé)啟動,加載,運行服務(wù)提供者。
服務(wù)提供者在啟動時,向注冊中心注冊自己提供的服務(wù)。
服務(wù)消費者在啟動時,向注冊中心訂閱自己所需的服務(wù)。
注冊中心返回服務(wù)提供者地址列表給消費者,如果有變更,注冊中心將基于長連接推送變更數(shù)據(jù)給消費者。
服務(wù)消費者,從提供者地址列表中,基于軟負(fù)載均衡算法,選一臺提供者進(jìn)行調(diào)用,如果調(diào)用失敗,再選另一臺調(diào)用。
服務(wù)消費者和提供者,在內(nèi)存中累計調(diào)用次數(shù)和調(diào)用時間,定時每分鐘發(fā)送一次統(tǒng)計數(shù)據(jù)到監(jiān)控中心。
dubbo 支持的協(xié)議
支持多種協(xié)議:dubbo , hessian , rmi , http, webservice , thrift , memcached , redis。dubbo 官方推薦使用dubbo 協(xié)議。dubbo 協(xié)議默認(rèn)端口 20880
使用 dubbo 協(xié)議,spring 配置文件加入:
<dubbo:protocol name="dubbo" port="20880" />
電商平臺需求
某電商平臺系統(tǒng)需求,用戶瀏覽商品;選擇商品下訂單,訂單系統(tǒng)需要獲取用戶信息中的送貨地址;向支付系統(tǒng)請求完成付款。
請輸入評論內(nèi)容...
請輸入評論/評論長度6~500個字
最新活動更多
-
即日-10.29立即報名>> 2024德州儀器嵌入式技術(shù)創(chuàng)新發(fā)展研討會
-
10月31日立即下載>> 【限時免費下載】TE暖通空調(diào)系統(tǒng)高效可靠的組件解決方案
-
即日-11.13立即報名>>> 【在線會議】多物理場仿真助跑新能源汽車
-
11月14日立即報名>> 2024工程師系列—工業(yè)電子技術(shù)在線會議
-
12月19日立即報名>> 【線下會議】OFweek 2024(第九屆)物聯(lián)網(wǎng)產(chǎn)業(yè)大會
-
即日-12.26火熱報名中>> OFweek2024中國智造CIO在線峰會
推薦專題
- 1 Intel宣布40年來最重大轉(zhuǎn)型:年底前裁員15000人、拋掉2/3房產(chǎn)
- 2 因美封殺TikTok,字節(jié)股價骨折!估值僅Meta1/5
- 3 宏山激光重磅發(fā)布行業(yè)解決方案,助力智能制造產(chǎn)業(yè)新飛躍
- 4 國產(chǎn)AI芯片公司破產(chǎn)!白菜價拍賣
- 5 具身智能火了,但規(guī)模落地還需時間
- 6 三次錯失風(fēng)口!OpenAI前員工殺回AI編程賽道,老東家捧金相助
- 7 國產(chǎn)英偉達(dá)們,抓緊沖刺A股
- 8 英偉達(dá)的麻煩在后頭?
- 9 將“網(wǎng)紅”變成“商品”,AI“爆改”實力拉滿
- 10 智慧貨架管理引領(lǐng)零售新風(fēng)尚
- 高級軟件工程師 廣東省/深圳市
- 自動化高級工程師 廣東省/深圳市
- 光器件研發(fā)工程師 福建省/福州市
- 銷售總監(jiān)(光器件) 北京市/海淀區(qū)
- 激光器高級銷售經(jīng)理 上海市/虹口區(qū)
- 光器件物理工程師 北京市/海淀區(qū)
- 激光研發(fā)工程師 北京市/昌平區(qū)
- 技術(shù)專家 廣東省/江門市
- 封裝工程師 北京市/海淀區(qū)
- 結(jié)構(gòu)工程師 廣東省/深圳市