本篇內(nèi)容主要講解“dubbo分層設(shè)計(jì)有哪些”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“dubbo分層設(shè)計(jì)有哪些”吧!
十年的河?xùn)|網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開(kāi)發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。成都營(yíng)銷網(wǎng)站建設(shè)的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整河?xùn)|建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)從事“河?xùn)|網(wǎng)站設(shè)計(jì)”,“河?xùn)|網(wǎng)站推廣”以來(lái),每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
dubbo分層設(shè)計(jì):
config 配置層:對(duì)外配置接口,以 ServiceConfig
, ReferenceConfig
為中心,可以直接初始化配置類,也可以通過(guò) spring 解析配置生成配置類
proxy 服務(wù)代理層:服務(wù)接口透明代理,生成服務(wù)的客戶端 Stub 和服務(wù)器端 Skeleton, 以 ServiceProxy
為中心,擴(kuò)展接口為 ProxyFactory
registry 注冊(cè)中心層:封裝服務(wù)地址的注冊(cè)與發(fā)現(xiàn),以服務(wù) URL 為中心,擴(kuò)展接口為 RegistryFactory
, Registry
, RegistryService
cluster 路由層:封裝多個(gè)提供者的路由及負(fù)載均衡,并橋接注冊(cè)中心,以 Invoker
為中心,擴(kuò)展接口為 Cluster
, Directory
, Router
, LoadBalance
monitor 監(jiān)控層:RPC 調(diào)用次數(shù)和調(diào)用時(shí)間監(jiān)控,以 Statistics
為中心,擴(kuò)展接口為 MonitorFactory
, Monitor
, MonitorService
protocol 遠(yuǎn)程調(diào)用層:封裝 RPC 調(diào)用,以 Invocation
, Result
為中心,擴(kuò)展接口為 Protocol
, Invoker
, Exporter
exchange 信息交換層:封裝請(qǐng)求響應(yīng)模式,同步轉(zhuǎn)異步,以 Request
, Response
為中心,擴(kuò)展接口為 Exchanger
, ExchangeChannel
, ExchangeClient
, ExchangeServer
transport 網(wǎng)絡(luò)傳輸層:抽象 mina 和 netty 為統(tǒng)一接口,以 Message
為中心,擴(kuò)展接口為 Channel
, Transporter
, Client
, Server
, Codec
serialize 數(shù)據(jù)序列化層:可復(fù)用的一些工具,擴(kuò)展接口為 Serialization
, ObjectInput
, ObjectOutput
, ThreadPool
dubbo設(shè)計(jì)原則:
采用 Microkernel + Plugin 模式,Microkernel 只負(fù)責(zé)組裝 Plugin,Dubbo 自身的功能也是通過(guò)擴(kuò)展點(diǎn)實(shí)現(xiàn)的,也就是 Dubbo 的所有功能點(diǎn)都可被用戶自定義擴(kuò)展所替換。
采用 URL 作為配置信息的統(tǒng)一格式,所有擴(kuò)展點(diǎn)都通過(guò)傳遞 URL 攜帶配置信息。
dubbo注冊(cè)中心
Multicast注冊(cè)中心:Multicast 注冊(cè)中心不需要啟動(dòng)任何中心節(jié)點(diǎn),只要廣播地址一樣,就可以互相發(fā)現(xiàn)。
Zookeeper注冊(cè)中心:Zookeeper 是 Apacahe Hadoop 的子項(xiàng)目,是一個(gè)樹(shù)型的目錄服務(wù),支持變更推送,適合作為 Dubbo 服務(wù)的注冊(cè)中心,工業(yè)強(qiáng)度較高,可用于生產(chǎn)環(huán)境,并推薦使用 阿里內(nèi)部并沒(méi)有使用zookeeper注冊(cè)中心。
redis注冊(cè)中心:阿里內(nèi)部并沒(méi)有使用Redis注冊(cè)中心,而是使用的基于數(shù)據(jù)庫(kù)的注冊(cè)中心。
使用 Redis 的 Key/Map 結(jié)構(gòu)存儲(chǔ)數(shù)據(jù)結(jié)構(gòu):
主 Key 為服務(wù)名和類型
Map 中的 Key 為 URL 地址
Map 中的 Value 為過(guò)期時(shí)間,用于判斷臟數(shù)據(jù),臟數(shù)據(jù)由監(jiān)控中心刪除 [3]
使用 Redis 的 Publish/Subscribe 事件通知數(shù)據(jù)變更:
通過(guò)事件的值區(qū)分事件類型:register
, unregister
, subscribe
, unsubscribe
普通消費(fèi)者直接訂閱指定服務(wù)提供者的 Key,只會(huì)收到指定服務(wù)的 register
, unregister
事件
監(jiān)控中心通過(guò) psubscribe
功能訂閱 /dubbo/*
,會(huì)收到所有服務(wù)的所有變更事件
Simple注冊(cè)中心:Simple 注冊(cè)中心本身就是一個(gè)普通的 Dubbo 服務(wù),可以減少第三方依賴,使整體通訊方式一致。
到此,相信大家對(duì)“dubbo分層設(shè)計(jì)有哪些”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!