一竹揍、HeaderExchangeServer敬飒、HeaderExchangeClient
HeaderExchangeServer:
提供心跳檢查功能;啟動心跳監(jiān)測線程池芬位,該線程池初始化了一個線程无拗,在線程中調(diào)用線程類HeartBeatTask進(jìn)行心跳檢查,HeartBeatTask處理心跳的規(guī)則:
1)若通道的最新的寫入時間或者最新的讀取時間與當(dāng)前時間相比昧碉,已經(jīng)超過了心跳間隔時間英染,則發(fā)送心跳請求;
2)如果通道的最新的讀取時間與當(dāng)前時間相比被饿,已經(jīng)超過了心跳的超時時間税迷,對于客戶端來說則重連;對于服務(wù)端來說則關(guān)閉通道锹漱。
HeaderExchangeClient:
提供心跳檢查功能箭养;將send、request哥牍、close等事件轉(zhuǎn)由HeaderExchangeChannel處理毕泌,HeaderExchangeChannel對象中的Channel為所選的NIO框架對應(yīng)的client對象;以request為例嗅辣,調(diào)用流程如下:HeaderExchangeClient. request(Object request)--->HeaderExchangeChannel. request(Object request)-->(NettyClient)AbstractPeer.send(Object message)-->(NettyClient)AbstractClient. send(Object message, boolean sent)撼泛。
二澡谭、HeaderExchanger
三愿题、Exchangers、Transporters工廠類
四潘酗、ChannelHandler
五杆兵、DubboInvoker
六、DubboExporter
七仔夺、DubboProtocol
八琐脏、ExtentionLoader
有的圖比較大,導(dǎo)出圖片時比較模糊,雙擊查看原圖即可。以后我會陸續(xù)在圖的下發(fā)更新類的作用,方便系統(tǒng)的學(xué)習(xí)Dubbo.