dubbo有两种线程池,io线程池、业务线程池
以netty作为io框架为例:
boss线程池: 主要处理新的连接请求, 无界
worker线程池:处理连接的数据交换,无界
注:这两个线程池属于netty范畴,具体用处待学习
业务线程池可选值:
- fixed, 默认值,线程数200,队列长度为0.
- cached
- limited
源码参考接口: com.alibaba.dubbo.common.threadpool
源码实现说明:
netty有Channel、ChannelHandler
dubbo 对应的就有NettyChannel 、 ChannelHandler
利用适配器模式,NettyHandler extends SimpleChannelHandler, 将所有的处理逻辑转到NettyServer(这是一个dubbo类型的ChannelHandler)
NettyServer -> MultiMessageHandler -> HeartbeatHandler -> (Dispatcher类ChannelHandler, 两种线程池的分水岭) -> DecodeHandler -> HeaderExchangeHandler -> ExchangeHandlerAdapter
对accepts的判断是在NettyServer
参考:
https://blog.csdn.net/manzhizhen/article/details/73436619