日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Dubbo服务暴露原理

發布時間:2025/3/20 编程问答 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Dubbo服务暴露原理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

服務暴露原理

配置文件

IOC容器啟動,加載配置文件的時候
Dubbo標簽處理器,解析每一個標簽

封裝成對應的組件

service

解析service標簽
將service標簽信息,封裝成ServiceBean

ServiceBean

實現了兩個重要機制

InitializingBean

Spring的接口
當組件創建完對象之后
會調用InitializingBean中的afterPropertiesSet方法

組件屬性設置完成,會回調這個方法

ApplicationListener

應用監聽器
監聽IOC容器的刷新事件

當IOC容器中,所有對象都創建完成
會回調onApplicationEvent方法

Spring原理

ServiceBean在創建完對象之后
會調用afterPropertiesSet方法

IOC容器啟動完成之后
會調用onApplicationEvent方法

afterPropertiesSet
設置beanClass的屬性值

onApplicationEvent

當IOC容器刷新完成
如果,不是延遲的、是暴露的,沒有暴露的
調用export方法,暴露服務

Export

暴露服務
調用doExport方法,執行暴露

doExport

執行暴露
調用doExportUrls方法,暴露URL地址

doExportUrls

讀取注冊中心地址,端口號
獲取protocols協議,端口號

For循環
可以配置多個protocols標簽
使用多個協議,暴露在多個端口

doExportUrlsFor1Protocol

注冊服務到注冊中心

Invoker

通過代理工廠,獲取invoker
執行器,包裝了執行者信息
包含了執行哪個對象、哪個方法、URL地址等

protocol.export

暴露invoker

Protocol
基于Java的SPI機制
獲取類加載器,得到適配器

Protocol

Ctrl+T,查看依賴樹
使用Dubbo協議暴露,注冊到注冊中心
使用DubboProtocol、RegistryProtocol

DubboProtocol

調用export方法

Export

DubboProtocol的export方法

RegistryProtocol

調用export方法

Export

RegistryProtocol的export方法

protocol.export(invoker)

首先,調用RegistryProtocol的export方法
將服務注冊到注冊中心

然后,調用DubboProtocol的export方法
啟動Netty服務器,監聽Dubbo協議端口

RegistryProtocol

export方法
doLocalExport方法,本地暴露

DubboProtocol

export方法
調用openServer方法

打開服務器
openServer
調用createServer方法

創建服務器
createServer

調用Exchangers.bind
綁定服務器、請求處理器

Exchangers.bind
調用getExchanger(url).bind

getExchanger(url).bind
調用Transporters.bind

傳輸器

Transporters.bind

調用getTransporter().bind

getTransporter().bind

調用底層的NettyTransporter

NettyTransporter

創建一個Netty服務器

openServer(url)
啟動Netty服務器,監聽20880端口

總結

以上是生活随笔為你收集整理的Dubbo服务暴露原理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。