Netty——深入剖析EventLoop和EventLoopGroup线程模型

线程模型

     1)高性能RPC框架的3个要素:网络IO模型5个、数据协议(http protobuf(google) thrift)不同的模型所占用的字节不同、也可以影响RPC框架的性能线程模型(io多路复用)

(Remote Procedure Call)—远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易

      2)EventLoop好比一个线程1个EventLoop可以服务多个Channel1个Channel只有一个EventLoop

Netty——深入剖析EventLoop和EventLoopGroup线程模型_第1张图片

      可以创建多个 EventLoop 来优化资源利用,也就是EventLoopGroup

      3)EventLoopGroup 负责分配 EventLoop 到新创建的 Channel,里面包含多个EventLoop

 

      EventLoopGroup -> 多个 EventLoop

      EventLoop -> 维护一个 Selector

Netty——深入剖析EventLoop和EventLoopGroup线程模型_第2张图片

每个selector会维护多个连接所以能够支持多个连接

Netty——深入剖析EventLoop和EventLoopGroup线程模型_第3张图片

学习资料:http://ifeve.com/selectors/

JAVA NIO模型

Netty——深入剖析EventLoop和EventLoopGroup线程模型_第4张图片

     4)源码分析默认线程池数量

Netty——深入剖析EventLoop和EventLoopGroup线程模型_第5张图片

核数*2

Netty——深入剖析EventLoop和EventLoopGroup线程模型_第6张图片

Netty——深入剖析EventLoop和EventLoopGroup线程模型_第7张图片

 

 

Netty——深入剖析EventLoop和EventLoopGroup线程模型_第8张图片

 

你可能感兴趣的:(Netty)