Netty的Reactor模式(上)

简介: Netty的Reactor模式
BIO NIO AIO
Thread-Per-Connection Reactor Proactor

什么是Reactor

Reactor是一种开发模式,模式的核心流程:

注册感兴趣的事件->扫描是否有感兴趣的事件发生->事件发生后做出相应的处理。

client/Server SocketChannel/ServerSocketChannel OP_ACCEPT OP_CONNECT OP_WRITE OP_READ
client SocketChannel Y Y Y
client ServerSocketChannel Y




client SocketChannel



Y

Y

三种版本

Thread-Per-Connection模式

image.png

注意到每个 handler 里的 read 和 send都是阻塞操作,那用线程池不就行了?但那只是避免了线程数量无限增长而已,依旧无法避免等待线程的阻塞。

image.png

Reactor 模式 V1:单线程,一个线程太累啦,而且他一旦挂了,整个系统挂了。相当于创业初期,老板就是个全干工程师。

image.png

Reactor 模式 V2:多线程,老板开始招合伙人了,大家一起干!

image.png

Reactor 模式 V3:主从多线程。对于服务器来说,最重要的莫过于接收连接,使用主线程做这些事。老板真的成为资本家了,开始招聘打工人啦!老板只负责最关键的事情即可。

image.png

目录
相关文章
|
8月前
|
安全 Java 调度
Netty源码—3.Reactor线程模型二
本文主要介绍了NioEventLoop的执行总体框架、Reactor线程执行一次事件轮询、Reactor线程处理产生IO事件的Channel、Reactor线程处理任务队列之添加任务、Reactor线程处理任务队列之执行任务、NioEventLoop总结。
|
8月前
|
安全 Java
Netty源码—2.Reactor线程模型一
本文主要介绍了关于NioEventLoop的问题整理、理解Reactor线程模型主要分三部分、NioEventLoop的创建和NioEventLoop的启动。
|
编解码 网络协议 API
Netty运行原理问题之Netty的主次Reactor多线程模型工作的问题如何解决
Netty运行原理问题之Netty的主次Reactor多线程模型工作的问题如何解决
144 1
|
Java 调度
【Netty 网络通信】Reactor模式
【1月更文挑战第9天】【Netty 网络通信】Reactor模式
灵魂一击!Netty系列笔记之Reactor模式(建议收藏)
一、什么是 Reactor 三种 IO 模式和对应的开发模式如下: BIONIOAIOThread-Per-ConnectionReactorProactor Reactor 是一种开发模式,核心流程为: 1、注册感兴趣的事件 2、扫描是否有感兴趣的事件发生 3、事件发生后做相应的处理
|
缓存 负载均衡 网络协议
面试官:Netty的线程模型可不是Reactor这么简单
面试官:Netty的线程模型可不是Reactor这么简单
面试官:Netty的线程模型可不是Reactor这么简单
|
编解码 弹性计算 缓存
Netty源码和Reactor模型
Netty源码和Reactor模型
250 0
|
JavaScript 安全 Java
深入Netty逻辑架构,从Reactor线程模型开始(一)
深入Netty逻辑架构,从Reactor线程模型开始(一)
737 0
深入Netty逻辑架构,从Reactor线程模型开始(一)
|
消息中间件 Java 调度
深入Netty逻辑架构,从Reactor线程模型开始(二)
深入Netty逻辑架构,从Reactor线程模型开始(二)
345 0
深入Netty逻辑架构,从Reactor线程模型开始(二)
|
Java
Netty「基石」之Reactor模式
Netty「基石」之Reactor模式
362 0