您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“dubbo分層設計有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“dubbo分層設計有哪些”吧!
dubbo分層設計:
config 配置層:對外配置接口,以 ServiceConfig
, ReferenceConfig
為中心,可以直接初始化配置類,也可以通過 spring 解析配置生成配置類
proxy 服務代理層:服務接口透明代理,生成服務的客戶端 Stub 和服務器端 Skeleton, 以 ServiceProxy
為中心,擴展接口為 ProxyFactory
registry 注冊中心層:封裝服務地址的注冊與發(fā)現(xiàn),以服務 URL 為中心,擴展接口為 RegistryFactory
, Registry
, RegistryService
cluster 路由層:封裝多個提供者的路由及負載均衡,并橋接注冊中心,以 Invoker
為中心,擴展接口為 Cluster
, Directory
, Router
, LoadBalance
monitor 監(jiān)控層:RPC 調(diào)用次數(shù)和調(diào)用時間監(jiān)控,以 Statistics
為中心,擴展接口為 MonitorFactory
, Monitor
, MonitorService
protocol 遠程調(diào)用層:封裝 RPC 調(diào)用,以 Invocation
, Result
為中心,擴展接口為 Protocol
, Invoker
, Exporter
exchange 信息交換層:封裝請求響應模式,同步轉異步,以 Request
, Response
為中心,擴展接口為 Exchanger
, ExchangeChannel
, ExchangeClient
, ExchangeServer
transport 網(wǎng)絡傳輸層:抽象 mina 和 netty 為統(tǒng)一接口,以 Message
為中心,擴展接口為 Channel
, Transporter
, Client
, Server
, Codec
serialize 數(shù)據(jù)序列化層:可復用的一些工具,擴展接口為 Serialization
, ObjectInput
, ObjectOutput
, ThreadPool
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ū)分事件類型:register
, unregister
, subscribe
, unsubscribe
普通消費者直接訂閱指定服務提供者的 Key,只會收到指定服務的 register
, unregister
事件
監(jiān)控中心通過 psubscribe
功能訂閱 /dubbo/*
,會收到所有服務的所有變更事件
Simple注冊中心:Simple 注冊中心本身就是一個普通的 Dubbo 服務,可以減少第三方依賴,使整體通訊方式一致。
到此,相信大家對“dubbo分層設計有哪些”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關內(nèi)容可以進入相關頻道進行查詢,關注我們,繼續(xù)學習!
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。