dubbo remoting(3)
上文说了dubbo remoting 的发送、处理逻辑。本文的重点是dubbo remoting的代码逻辑,看看这块是如何组织代码解决问题的。我们不谈代码的来由,需要读者对dubbo remoting的代码有一定的了解。 dubbo remoting的代码要涉及到发送数据的各个方面:通道channel、处理器handler、序列化反序列化、编解码codec。 #通道 dubbo里面的通道具体有三种:Grizzly、Netty、Mina的。 #处理器 有了通道就有了发送接收数据的工具。数据发送接收需要做一系列的逻辑处理。这些逻辑处理就是处理器要做的事情。处理器要做的事情就是将channel包装成channel事务ChannelEventRunnable,然后配置一个线程池处理该信息。 executor.execute(new ChannelEventRunnable(channel, handler ,ChannelState.DISCONNECTED)); 渠道那么多,他们是如何选择处理器的呢?答案是派发器Dispatcher,派发起决定哪个渠道使用哪个处理器。 那派发器有是什么时候指定的呢? 首先我们看代码ChannelHandlers */ public class ChannelHandlers { public static ChannelHandler wrap