dubbo主要核心部件:
Remoting:網(wǎng)絡(luò)通信框架,實現(xiàn)了sync-over-async和request-response消息機(jī)制
RPC:一個遠(yuǎn)程過程調(diào)用的抽象,支持負(fù)載均衡、容災(zāi)和集群功能
Registry:服務(wù)目錄框架用于服務(wù)的注冊和服務(wù)事件發(fā)布和訂閱
Dubbo功能特點:
(1) 連通性:
注冊中心負(fù)責(zé)服務(wù)地址的注冊與查找,相當(dāng)于目錄服務(wù),服務(wù)提供者和消費者只在啟動時與注冊中心交互,注冊中心不轉(zhuǎn)發(fā)請求,壓力較小
監(jiān)控中心負(fù)責(zé)統(tǒng)計各服務(wù)調(diào)用次數(shù),調(diào)用時間等,統(tǒng)計先在內(nèi)存匯總后每分鐘一次發(fā)送到監(jiān)控中心服務(wù)器,并以報表展示
服務(wù)提供者向注冊中心注冊其提供的服務(wù),并匯報調(diào)用時間到監(jiān)控中心,此時間不包含網(wǎng)絡(luò)開銷
服務(wù)消費者向注冊中心獲取服務(wù)提供者地址列表,并根據(jù)負(fù)載算法直接調(diào)用提供者,同時匯報調(diào)用時間到監(jiān)控中心,此時間包含網(wǎng)絡(luò)開銷
注冊中心,服務(wù)提供者,服務(wù)消費者三者之間均為長連接,監(jiān)控中心除外
注冊中心通過長連接感知服務(wù)提供者的存在,服務(wù)提供者宕機(jī),注冊中心將立即推送事件通知消費者
注冊中心和監(jiān)控中心全部宕機(jī),不影響已運行的提供者和消費者,消費者在本地緩存了提供者列表
注冊中心和監(jiān)控中心都是可選的,服務(wù)消費者可以直連服務(wù)提供者
(2) 健狀性:
監(jiān)控中心宕掉不影響使用,只是丟失部分采樣數(shù)據(jù)
數(shù)據(jù)庫宕掉后,注冊中心仍能通過緩存提供服務(wù)列表查詢,但不能注冊新服務(wù)
注冊中心對等集群,任意一臺宕掉后,將自動切換到另一臺
注冊中心全部宕掉后,服務(wù)提供者和服務(wù)消費者仍能通過本地緩存通訊
服務(wù)提供者無狀態(tài),任意一臺宕掉后,不影響使用
服務(wù)提供者全部宕掉后,服務(wù)消費者應(yīng)用將無法使用,并無限次重連等待服務(wù)提供者恢復(fù)
(3) 伸縮性:
注冊中心為對等集群,可動態(tài)增加機(jī)器部署實例,所有客戶端將自動發(fā)現(xiàn)新的注冊中心
服務(wù)提供者無狀態(tài),可動態(tài)增加機(jī)器部署實例,注冊中心將推送新的服務(wù)提供者信息給消費者
Apache Dubbo 更新日志:
v2.7.11
優(yōu)化
使用nodeCache代替treeCache。
首次獲取getServiceAppMapping時,減少一次網(wǎng)絡(luò)傳輸。
針對循環(huán)條件優(yōu)化代碼
當(dāng)注冊表不支持服務(wù)自檢體系結(jié)構(gòu)時,兼容切換到接口級服務(wù)發(fā)現(xiàn)
優(yōu)化泛型的泛化和泛化
使用@SPI的wrapper方法報告空指針異常錯誤
從屬性文件綁定的數(shù)據(jù)遇到錯誤時引發(fā)異常
簡化OptionUtil#prefixEndOf
固定密碼以純文本格式打印
優(yōu)化一些與領(lǐng)事有關(guān)的代碼
將ContextFilter移到最低順序
當(dāng)getRegistry錯誤時,記錄錯誤。
將ClusterRules LoadbalanceRules添加到dubbo common
使用CollectionUtils方法執(zhí)行Collection null驗證
SPI默認(rèn)名稱調(diào)整
合并異常,刪除冗余接口實現(xiàn)
優(yōu)化代碼以刪除無用的對象
使用雙重檢查從緩存中獲取元素
刪除冗余引用
修復(fù)默認(rèn)配置無效
在ZookeeperDynamicConfiguration中優(yōu)化ThreadPoolExecutor的執(zhí)行程序的創(chuàng)建
發(fā)出通用dubbo服務(wù)請求時,將check設(shè)置為true可能會導(dǎo)致內(nèi)存泄漏
刪除重復(fù)的調(diào)用MetadataInfo#calAndGetRevision方法
刪除DubboBootstrap中的EventListener用法
將由PojoU在GenericFilter中生成的IllegalArgumentException轉(zhuǎn)換為RpcException
解決了新版本的Dubbo中的ProtocolConfig需要名稱參數(shù)的問題
默認(rèn)情況下,使Dubbo2.7.x不在注冊表中注冊serviceNameMapping信息。
特征
為JdkCompiler添加選項配置機(jī)制。
將參數(shù)Router添加到ConditionRouter
解決重復(fù)注冊提供者的BeanDefinition的問題
將注釋字段添加到matedata定義
錯誤修正
修復(fù)對URLBuilder的不正確處理導(dǎo)致生成錯誤的URL
修復(fù)了導(dǎo)出異步忽略異常的錯誤
修復(fù)DubboReference *版本無效的問題
修復(fù)S()總是讓另外1個請求通過
清除AbstractProxyProtocol中已銷毀的調(diào)用程序
未連接頻道時,將默認(rèn)的NeedReconnect設(shè)置為true
修復(fù)etcd設(shè)置為'group'的注冊表無法隔離
修復(fù)DubboProtocol#getSharedClient中的鎖定
修復(fù)ExceptionFilter(#6932)中的代碼類型
將通用參數(shù)作為組,在版本org.a中處理
解決廣播群集意味著將調(diào)用多臺計算機(jī),但此時尚未將其轉(zhuǎn)換為injvm協(xié)議。
修復(fù)向URL重復(fù)添加參數(shù)的問題
修復(fù)錯誤的實例變量名稱定義
修復(fù)基于Linux ARM64 CPU架構(gòu)的構(gòu)建
消費者配置標(biāo)簽覆蓋privode標(biāo)簽配置
修復(fù)RegistryProtocol記錄器
修復(fù)了不收聽不匹配密鑰的問題。
修復(fù)了可能導(dǎo)致MetadataReportInstance#init多次初始化的問題
Fix字段可能為null,請避免引發(fā)NullPointerException
Fix方法在RpcUtils中可能為null,避免引發(fā)NullPointerException
修復(fù)localAddress可能為null,避免引發(fā)NullPointerException
Fix方法可能為null,并且NullPointerException將在MethodUtils中引發(fā)
修復(fù)RegistryProtocol registerStatedUrl NPE。
setSkyWalkingDynamicField)未找到修復(fù)程序
修復(fù)刪除最后一個配置不生效
修復(fù)remoteMap可能為null以避免拋出NullPointerException
修復(fù)EtcdServiceDiscovery不覆蓋getUrl方法,導(dǎo)致訂閱引發(fā)異常的情況
修復(fù)Dubbo Zookeeper注冊表無法重新訂閱
ZookeeperServiceDiscovery策展人客戶端支持多地址。
1.《Dubbo服務(wù)框架 v3.0.4》援引自互聯(lián)網(wǎng),旨在傳遞更多網(wǎng)絡(luò)信息知識,僅代表作者本人觀點,與本網(wǎng)站無關(guān),侵刪請聯(lián)系頁腳下方聯(lián)系方式。
2.《Dubbo服務(wù)框架 v3.0.4》僅供讀者參考,本網(wǎng)站未對該內(nèi)容進(jìn)行證實,對其原創(chuàng)性、真實性、完整性、及時性不作任何保證。
3.文章轉(zhuǎn)載時請保留本站內(nèi)容來源地址,http://f99ss.com/tiyu/2097425.html