一、HeaderExchangeServer、HeaderExchangeClient
HeaderExchangeServer:
提供心跳检查功能;启动心跳监测线程池,该线程池初始化了一个线程,在线程中调用线程类HeartBeatTask进行心跳检查,HeartBeatTask处理心跳的规则:
1)若通道的最新的写入时间或者最新的读取时间与当前时间相比,已经超过了心跳间隔时间,则发送心跳请求;
2)如果通道的最新的读取时间与当前时间相比,已经超过了心跳的超时时间,对于客户端来说则重连;对于服务端来说则关闭通道。
HeaderExchangeClient:
提供心跳检查功能;将send、request、close等事件转由HeaderExchangeChannel处理,HeaderExchangeChannel对象中的Channel为所选的NIO框架对应的client对象;以request为例,调用流程如下:HeaderExchangeClient. request(Object request)--->HeaderExchangeChannel. request(Object request)-->(NettyClient)AbstractPeer.send(Object message)-->(NettyClient)AbstractClient. send(Object message, boolean sent)。

HeaderExchangeServer、Client核心类图.png
二、HeaderExchanger

HeaderExchanger.png
三、Exchangers、Transporters工厂类

Exchangers、Transporters.png
四、ChannelHandler

ChannelHandler.png
五、DubboInvoker

DubboInvoker.png
六、DubboExporter

DubboExporter.png
七、DubboProtocol

DubboProtocol.png
八、ExtentionLoader

ExtensionLoader.png
有的图比较大,导出图片时比较模糊,双击查看原图即可。以后我会陆续在图的下发更新类的作用,方便系统的学习Dubbo.