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

目录
相关文章
|
Java 调度
【Netty】主从反应器 ( Reactor ) 多线程模型
【Netty】主从反应器 ( Reactor ) 多线程模型
790 0
【Netty】主从反应器 ( Reactor ) 多线程模型
|
3月前
|
编解码 网络协议 API
Netty运行原理问题之Netty的主次Reactor多线程模型工作的问题如何解决
Netty运行原理问题之Netty的主次Reactor多线程模型工作的问题如何解决
|
6月前
|
Java 调度
【Netty 网络通信】Reactor模式
【1月更文挑战第9天】【Netty 网络通信】Reactor模式
灵魂一击!Netty系列笔记之Reactor模式(建议收藏)
一、什么是 Reactor 三种 IO 模式和对应的开发模式如下: BIONIOAIOThread-Per-ConnectionReactorProactor Reactor 是一种开发模式,核心流程为: 1、注册感兴趣的事件 2、扫描是否有感兴趣的事件发生 3、事件发生后做相应的处理
|
编解码 弹性计算 缓存
Netty源码和Reactor模型
Netty源码和Reactor模型
101 0
|
Java
Netty「基石」之Reactor模式
Netty「基石」之Reactor模式
192 0
|
缓存 负载均衡 网络协议
面试官:Netty的线程模型可不是Reactor这么简单
面试官:Netty的线程模型可不是Reactor这么简单
面试官:Netty的线程模型可不是Reactor这么简单
|
JavaScript 安全 Java
深入Netty逻辑架构,从Reactor线程模型开始(一)
深入Netty逻辑架构,从Reactor线程模型开始(一)
415 0
深入Netty逻辑架构,从Reactor线程模型开始(一)
|
消息中间件 Java 调度
深入Netty逻辑架构,从Reactor线程模型开始(二)
深入Netty逻辑架构,从Reactor线程模型开始(二)
215 0
深入Netty逻辑架构,从Reactor线程模型开始(二)
|
设计模式 Java 程序员
Netty线程模型 - Reactor 模式
我相信有很多人会对这个Reactor模式比较陌生,但是Netty这个名字大家都会比较熟悉,即使没有学习使用过,也会对它有所耳闻,它可以说是Java高性能网络编程的代名词。Reactor模式就是Netty线程模型设计的核心,本文我们就以Reactor模式入手,探究一下经典的设计。
179 0