溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

dubbo分層設計有哪些

發(fā)布時間:2021-12-17 10:58:46 來源:億速云 閱讀:140 作者:iii 欄目:云計算

本篇內(nèi)容主要講解“dubbo分層設計有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“dubbo分層設計有哪些”吧!

    dubbo分層設計:

  • config 配置層:對外配置接口,以 ServiceConfigReferenceConfig 為中心,可以直接初始化配置類,也可以通過 spring 解析配置生成配置類

  • proxy 服務代理層:服務接口透明代理,生成服務的客戶端 Stub 和服務器端 Skeleton, 以 ServiceProxy 為中心,擴展接口為 ProxyFactory

  • registry 注冊中心層:封裝服務地址的注冊與發(fā)現(xiàn),以服務 URL 為中心,擴展接口為 RegistryFactoryRegistryRegistryService

  • cluster 路由層:封裝多個提供者的路由及負載均衡,并橋接注冊中心,以 Invoker 為中心,擴展接口為 ClusterDirectoryRouterLoadBalance

  • monitor 監(jiān)控層:RPC 調(diào)用次數(shù)和調(diào)用時間監(jiān)控,以 Statistics 為中心,擴展接口為 MonitorFactoryMonitorMonitorService

  • protocol 遠程調(diào)用層:封裝 RPC 調(diào)用,以 InvocationResult 為中心,擴展接口為 ProtocolInvokerExporter

  • exchange 信息交換層:封裝請求響應模式,同步轉異步,以 RequestResponse 為中心,擴展接口為 ExchangerExchangeChannelExchangeClientExchangeServer

  • transport 網(wǎng)絡傳輸層:抽象 mina 和 netty 為統(tǒng)一接口,以 Message 為中心,擴展接口為 ChannelTransporterClientServerCodec

  • serialize 數(shù)據(jù)序列化層:可復用的一些工具,擴展接口為 SerializationObjectInputObjectOutputThreadPool


dubbo設計原則:

  • 采用 Microkernel + Plugin 模式,Microkernel 只負責組裝 Plugin,Dubbo 自身的功能也是通過擴展點實現(xiàn)的,也就是 Dubbo 的所有功能點都可被用戶自定義擴展所替換。

  • 采用 URL 作為配置信息的統(tǒng)一格式,所有擴展點都通過傳遞 URL 攜帶配置信息。

dubbo注冊中心

    Multicast注冊中心:Multicast 注冊中心不需要啟動任何中心節(jié)點,只要廣播地址一樣,就可以互相發(fā)現(xiàn)。

    Zookeeper注冊中心:Zookeeper 是 Apacahe Hadoop 的子項目,是一個樹型的目錄服務,支持變更推送,適合作為 Dubbo 服務的注冊中心,工業(yè)強度較高,可用于生產(chǎn)環(huán)境,并推薦使用 阿里內(nèi)部并沒有使用zookeeper注冊中心。

     Redis注冊中心:阿里內(nèi)部并沒有使用Redis注冊中心,而是使用的基于數(shù)據(jù)庫的注冊中心。

使用 Redis 的 Key/Map 結構存儲數(shù)據(jù)結構:

  • 主 Key 為服務名和類型

  • Map 中的 Key 為 URL 地址

  • Map 中的 Value 為過期時間,用于判斷臟數(shù)據(jù),臟數(shù)據(jù)由監(jiān)控中心刪除 [3]

使用 Redis 的 Publish/Subscribe 事件通知數(shù)據(jù)變更:

  • 通過事件的值區(qū)分事件類型:registerunregistersubscribeunsubscribe

  • 普通消費者直接訂閱指定服務提供者的 Key,只會收到指定服務的 registerunregister 事件

  • 監(jiān)控中心通過 psubscribe 功能訂閱 /dubbo/*,會收到所有服務的所有變更事件

     Simple注冊中心:Simple 注冊中心本身就是一個普通的 Dubbo 服務,可以減少第三方依賴,使整體通訊方式一致。

到此,相信大家對“dubbo分層設計有哪些”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關內(nèi)容可以進入相關頻道進行查詢,關注我們,繼續(xù)學習!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI