写点什么

[Netty]- Reactor 实现

用户头像
topsion
关注
发布于: 2021 年 05 月 15 日

一. 各种 IO

BIO:Thread-Per-Connection


NIO:Reactor


AIO: Proactor


二. I/O 多路复用(技术术语:Reactor)


  1. 当多条连接共用一个阻塞对象后,进程只需要在一个阻塞对象上等待,而无需再轮训所有连接,常见的实现方式有 select,epoll,kqueue 等。

  2. 当某条连接有新的数据可以处理时,操作系统会通知进程,进程从阻塞状态返回,开始进行业务处理。


Reactor 是一种开发模式,Reactor 中文翻译为:反应堆。不是物理上的核反应堆,这儿代表的是:“事件反应”,可以理解为:“来一个事件我(Reactor)就有相应的反应”。Reactor 也可以叫 Dispatcher 模式:


  • Reactor 的数量可以变化:可以是一个 Reactor,也可以是多个 Reactor

  • 资源池的数量可以变化:可以是单线程,也可以是多线程


Reactor 模式核心流程:


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


Reactor 三种模式:1. 单线程(单 Reactor 单线程), 2. 多线程(单 Reactor 多线程) 3. 主从多线程(多 Reactor 多线程)


三. Netty 中对于 Reator 的实现



用户头像

topsion

关注

不积跬步,无以至千里 2018.06.14 加入

一名没多少料的代码搬运工,升级打怪中。

评论

发布
暂无评论
[Netty]- Reactor实现