reactor多线程模型_Netty运用Reactor模式到极致
常见的reactor模式有以下三种
- 单线程reactor
- 多线程reactor
- 主从reactor
1、单线程reactor
ractor 单线程模式是指所有的I/O操作都在一个NIO线程完成,该线程的职责:
1.作为NIO服务端,接收客户端TCP连接
2.作为NIO客户端,向客户端发送TCP连接
3.READ/WRITE 客户端的请求
不过单线程的reactor 模式无法发挥多核的优势,因此对于高并发量的系统仍然存在瓶颈,主要原因如下:
1、reactor 线程既要处理来自客户端的连接,又要处理READ/WRITE/编码/解码。即便cpu 100% 也难以满足实际场景的需求
多线程Reactor 解决了这些问题
2、多线程reactor模型
reactor 多线程的实现最大的区别是拥有一个专门用来处理实际I/O 操作是线程池
优点:
1、拥有一个Acceptor 专门用来监听请求的I/O 类型
2、使用专门线程池可以提高acceptor的并发量,并且可以将同一个SocketChannel 放于同一个I/O 线程处理,同一个I/O线程可以处理多个SocketChannel的READ/WRITE事件
在大部分场景,该线程模型都能处理,但存在这样一种场景:单个Acceptor 线程 可能会因为需要监听大量的 SocketChannel 连接 或 I/O事件处理或在建立建立时需要进行安全的握手认证、黑白名单过滤,而导致出现性能瓶颈。所以这种场景下,单独一个Accceptor 会导致性能不足,便出现了第三种线程模型,主从Reactor 模型
3、主从reactor 多线程模型
相比多线程reactor模型,主从reactor多线程模型拥有了一个独立处理 SocketChannel 连接的线程池,当客户端从Acceptor建立连接之后,便将该连接绑定到subreactor 线程池中的某个线程中,然后由该线程绑定客户端感兴趣的I/O事件(READ/WRITE),监听客户端连接请求,最后处理。
mainReactor : 监听 ServerSocketChannel 、建立与 SocketChannel 的连接、将完成建立连接之后的Socket 交给subReactor
subReactor : 监听SocketChannel的 I/O事件,完成编解码、相应的业务处理(默认为CPU个数)
reactor多线程模型_Netty运用Reactor模式到极致相关推荐
- 【Netty】主从反应器 ( Reactor ) 多线程模型
文章目录 一. 主从 反应器 ( Reactor ) 多线程 模式 二. 主从 反应器 ( Reactor ) 多线程 工作流程 三. 主从 反应器 ( Reactor ) 多线程 优缺点分析 四. ...
- 主从reactor 多线程模型
相比多线程reactor模型,主从reactor多线程模型拥有了一个独立处理 SocketChannel 连接的线程池,当客户端从Acceptor建立连接之后,便将该连接绑定到subreactor 线 ...
- reactor多线程模型_网络编程模型的演进之路
在没有IO多路复用的模型的情况下,为了支持高并发采取以下网络模型 一:阻塞IO+多线程 client连接服务器,服务器有一个线程阻塞的调用accept,accept接收到连接后,创建一个线程来读写读写 ...
- 浅谈Reactor 线程模型
Reactor 的线程模型有三种:单线程模型.多线程模型.主从多线程模型.首先来看一下单线程模型,如下图所示: 所谓单线程, 即Acceptor 处理和andler 处理都在同一个线程中处理.这个模型 ...
- Reactor线程模型
一 传统阻塞线程模型 第一:服务器端有一个Acceptor线程接收客户端请求 第二:Acceptor接收到每一个客户端请求后,为每一个线程分配一个线程处理客户端请求 缺点: 第一:当数据量很大或者客户 ...
- 【Netty】反应器 Reactor 模式 ( 单反应器 Reactor 单线程 | 单反应器 Reactor 多线程 )
文章目录 一. 反应器 ( Reactor ) 模式 二. 反应器 ( Reactor ) 模式两大组件 三. 单反应器 ( Reactor ) 单线程 四. 单反应器 ( Reactor ) 单线程 ...
- reactor和thread线程_Reactor模型详解:单Reactor多线程与主从Reactor多线程
主反应堆线程一直在感知连接建立的事件,如果有连接成功建立,主反应堆线程通过 accept 方法获取已连接套接字,接下来会按照一定的算法选取一个从反应堆线程,并把已连接套接字加入到选择好的从反应堆线程中 ...
- reactor线程模型_简单了解Java Netty Reactor三种线程模型
1. Reactor三种线程模型 1.1. 单线程模型 Reactor单线程模型,指的是所有的IO操作都在同一个NIO线程上面完成,NIO线程的职责如下: 1)作为NIO服务端,接收客户端的TCP连接 ...
- Netty工作笔记0037---主从Reactor多线程
技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 这个主从Reactor多线程模式,其实也是只有一个Reactor主线程,可以看到这个线程负责,监听 ...
最新文章
- 【WC2016】论战捆竹竿
- 我眼中的Linux设备树(二 节点)
- 新浪微博学习的知识点
- tail,more查看日志(定点和翻页)
- php中提示Undefined index的解决方法
- k8s redis集群_容器:K8S核心组件介绍
- 【HTML+CSS网页设计与布局 从入门到精通】第5章-表格
- 学会这4个表达「万能公式」,下次向领导汇报时不再语无伦次
- BroadLeaf项目搜索功能改进
- 系统性的学会 Pandas, 看这一篇就够了!
- Ubuntu中的zip / unzip 和 rar / unrar 命令:压缩 / 解压 zip 和 rar 文件
- 计算机速算训练,世界上最快的速算法,背熟就是速算神童,大脑堪比计算机!仅发一次...
- 点赞功能模块-文章点赞功能实现
- BBN: Bilateral-Branch Network with Cumulative Learning for Long-Tailed Visual Recognition
- 固定资产管理系统的作用何在?
- require.js理解
- 三.栈与栈的实例——汉诺塔
- Android 10 SurfaceView 奔溃报错signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x4
- 种草问题java_关于KOL种草营销常见问题 我来为你解答
- 虚拟机VHD格式解析到NTFS文件系统解析