您好,登錄后才能下訂單哦!
本篇內容主要講解“dubbo分層設計有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“dubbo分層設計有哪些”吧!
dubbo分層設計:
config 配置層:對外配置接口,以 ServiceConfig
, ReferenceConfig
為中心,可以直接初始化配置類,也可以通過 spring 解析配置生成配置類
proxy 服務代理層:服務接口透明代理,生成服務的客戶端 Stub 和服務器端 Skeleton, 以 ServiceProxy
為中心,擴展接口為 ProxyFactory
registry 注冊中心層:封裝服務地址的注冊與發現,以服務 URL 為中心,擴展接口為 RegistryFactory
, Registry
, RegistryService
cluster 路由層:封裝多個提供者的路由及負載均衡,并橋接注冊中心,以 Invoker
為中心,擴展接口為 Cluster
, Directory
, Router
, LoadBalance
monitor 監控層:RPC 調用次數和調用時間監控,以 Statistics
為中心,擴展接口為 MonitorFactory
, Monitor
, MonitorService
protocol 遠程調用層:封裝 RPC 調用,以 Invocation
, Result
為中心,擴展接口為 Protocol
, Invoker
, Exporter
exchange 信息交換層:封裝請求響應模式,同步轉異步,以 Request
, Response
為中心,擴展接口為 Exchanger
, ExchangeChannel
, ExchangeClient
, ExchangeServer
transport 網絡傳輸層:抽象 mina 和 netty 為統一接口,以 Message
為中心,擴展接口為 Channel
, Transporter
, Client
, Server
, Codec
serialize 數據序列化層:可復用的一些工具,擴展接口為 Serialization
, ObjectInput
, ObjectOutput
, ThreadPool
dubbo設計原則:
采用 Microkernel + Plugin 模式,Microkernel 只負責組裝 Plugin,Dubbo 自身的功能也是通過擴展點實現的,也就是 Dubbo 的所有功能點都可被用戶自定義擴展所替換。
采用 URL 作為配置信息的統一格式,所有擴展點都通過傳遞 URL 攜帶配置信息。
dubbo注冊中心
Multicast注冊中心:Multicast 注冊中心不需要啟動任何中心節點,只要廣播地址一樣,就可以互相發現。
Zookeeper注冊中心:Zookeeper 是 Apacahe Hadoop 的子項目,是一個樹型的目錄服務,支持變更推送,適合作為 Dubbo 服務的注冊中心,工業強度較高,可用于生產環境,并推薦使用 阿里內部并沒有使用zookeeper注冊中心。
Redis注冊中心:阿里內部并沒有使用Redis注冊中心,而是使用的基于數據庫的注冊中心。
使用 Redis 的 Key/Map 結構存儲數據結構:
主 Key 為服務名和類型
Map 中的 Key 為 URL 地址
Map 中的 Value 為過期時間,用于判斷臟數據,臟數據由監控中心刪除 [3]
使用 Redis 的 Publish/Subscribe 事件通知數據變更:
通過事件的值區分事件類型:register
, unregister
, subscribe
, unsubscribe
普通消費者直接訂閱指定服務提供者的 Key,只會收到指定服務的 register
, unregister
事件
監控中心通過 psubscribe
功能訂閱 /dubbo/*
,會收到所有服務的所有變更事件
Simple注冊中心:Simple 注冊中心本身就是一個普通的 Dubbo 服務,可以減少第三方依賴,使整體通訊方式一致。
到此,相信大家對“dubbo分層設計有哪些”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。