第18章 EventLoop和EventLoopGroup
2016-11-24 15:40
155 查看
第18章 EventLoop和EventLoopGroup
18.1 Netty的线程模型
18.1.1 Reactor单线程模型
Reactor单线程模型,是指所有的I/O操作都在同一个NIO线程上面完成。NIO线程的职责如下。
*作为NIO服务端,接受客户端的TCP连接
*作为NIO客户端,向服务端发起TCP连接
*读取通信对端的请求或者应答消息
*向通信对端发送消息请求或者应答消息。
单线程模式对于高负载、大并发的应用场景不合适。
18.1.2 Reactor多线程模型
Reactor多线程模型与单线程模型最大的区别就是有一组NIO线程来处理I/O操作。
一个NIO线程负责监听和处理所有的客户端连接可能会存在性能问题。
18.1.3 主从Reactor多线程模型
主从Reactor线程模型的特点是:服务端用于接收客户端连接的不再是一个单独的NIO线程,而是一个独立的NIO线程池。
18.1.4 Netty的线程模型
通过设置不同的启动参数,Netty可以同时支持Reactor单线程模型、多线程模型和主从Reactor多线程模型。
18.1.5 最佳实践
18.2 NioEventLoop源码分析
18.3 总结
18.1 Netty的线程模型
18.1.1 Reactor单线程模型
Reactor单线程模型,是指所有的I/O操作都在同一个NIO线程上面完成。NIO线程的职责如下。
*作为NIO服务端,接受客户端的TCP连接
*作为NIO客户端,向服务端发起TCP连接
*读取通信对端的请求或者应答消息
*向通信对端发送消息请求或者应答消息。
单线程模式对于高负载、大并发的应用场景不合适。
18.1.2 Reactor多线程模型
Reactor多线程模型与单线程模型最大的区别就是有一组NIO线程来处理I/O操作。
一个NIO线程负责监听和处理所有的客户端连接可能会存在性能问题。
18.1.3 主从Reactor多线程模型
主从Reactor线程模型的特点是:服务端用于接收客户端连接的不再是一个单独的NIO线程,而是一个独立的NIO线程池。
18.1.4 Netty的线程模型
通过设置不同的启动参数,Netty可以同时支持Reactor单线程模型、多线程模型和主从Reactor多线程模型。
18.1.5 最佳实践
18.2 NioEventLoop源码分析
18.3 总结
相关文章推荐
- EventLoop和EventLoopGroup
- Netty源码学习——EventLoopGroup原理:NioEventLoopGroup分析
- EventLoop与EventLoopGroup
- Netty源代码学习——EventLoopGroup原理:NioEventLoopGroup分析
- netty源码学习二(EventLoopGroup、EventLoop)
- EventLoop和EventLoopGroup
- Netty学习之旅------再谈线程模型之源码分析NioEventLoopGroup、SingleThreadEventExecutor
- Netty源码分析系列1——NIOEventLoopGroup的创建
- <二>---RIL层代码分析---RIL_startEventLoop()->eventLoop()->ril_event_loop()
- Netty:EventLoopGroup
- netty NioEventLoopGroup 线程名称设置
- Netty4(一)NioEventLoopGroup
- Netty4学习笔记(5)-- NioEventLoopGroup继承层次结构
- 【Netty4.X】Netty源码分析之NioEventLoopGroup(五)
- netty5笔记-线程模型2-EventLoopGroup
- Netty源码分析:NioEventLoopGroup
- Netty:EventLoopGroup
- Netty 权威指南笔记(八):EventLoopGroup 和线程模型
- Netty 4.0源码分析1:服务端启动过程中的Channel与EventLoopGroup的注册