线程模型
1)高性能RPC框架的3个要素:网络IO模型5个、数据协议(http protobuf(google) thrift)不同的模型所占用的字节不同、也可以影响RPC框架的性能线程模型(io多路复用)
(Remote Procedure Call)—远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易
2)EventLoop好比一个线程,1个EventLoop可以服务多个Channel,1个Channel只有一个EventLoop
可以创建多个 EventLoop 来优化资源利用,也就是EventLoopGroup
3)EventLoopGroup 负责分配 EventLoop 到新创建的 Channel,里面包含多个EventLoop
EventLoopGroup -> 多个 EventLoop
EventLoop -> 维护一个 Selector
每个selector会维护多个连接所以能够支持多个连接
学习资料:http://ifeve.com/selectors/
JAVA NIO模型
4)源码分析默认线程池数量
核数*2