介绍
其实客户端服务调用过程和服务端执行请求处理的过程很类似,搞懂请求经过的Channelhandler,就明白了一大半。
如果你没有看过
Dubbo源码解析:服务提供方接收请求及返回结果
建议先看一下,这样你就能理解清楚Dubbo和Netty中Channelhandler的不同。
Netty中的Channelhandler用的是责任链模式,而Dubbo中的Channelhandler用的是装饰者模式。
常用的Handler如下
ChannelHandler | 作用 |
---|---|
NettyClientHandler | 处理Netty客户端事件,如连接,断开,读取,写入,发生异常 |
NettyServerHandler | 处理Netty服务端事件,如连接,断开,读取,写入,发生异常 |
MultiMessageHandler | 多消息报文批处理 |
HeartbeatHandler | 心跳处理 |
AllChannelHandler | 将Netty的所有请求放到业务线程池中去处理 |
DecodeHandler | 对消息进行解码</ |