reactor中包含5个核心结构,那么从操作系统低层次的调度来看5部分是这样的。

(1)Handle(句柄资源描述符)本质是对客户端连接上来以后发生事件的处理机制,比如连接成功,读取数据,发送数据等状态。

(2)同步事件分离器,相对于nio来说可以理解为selector,对于客户端过来的事件需要一个一个的处理,根据事件的不同分发给具体不同的处理器。

(3)initialize dispatch(初始事件分发器)实际为管理对象,所有的事件集合首先会达到这里,后面会通过select分发,包括后面的handle也要注册到这里,可以理解为真正意义上的reactor对象。

  ps:而且当一个selector选择出一些事件以后,会交给initialize dispatch,再由initialize dispatch交给对应感兴趣具体事件的concrete event handle处理。所以实际情况如果是耗时操作,那么handle中的方法一定要放在workerThread中去处理,否则会影响分发器的Loop工作。

(4)Event Handle 统一事件处理器,在处理器中可以获取多种事件的状态。

(5)concrete Event Handle 具体的事件处理器,每一种事件去回调其处理逻辑。“ 映射到netty中可以理解为一些列为了事件处理而提供的handle,比如我在channelPipeline中添加的“编解码处理器”,“拆包处理器”等”

而netty的封装恰好仅仅让程序员关心了具体数据发过来以后的读取和响应处理即可。

netty本身就是基于reactor模式的请求处理响应的网络框架。

最新文章

  1. python——操作Redis
  2. SQL Lazy Spool Eager Spool
  3. java多线程一览
  4. c++ singleton单例模式
  5. 敏捷冲刺每日报告--day1
  6. Android第四次作业
  7. CentOS 7卸载Docker
  8. PAT 1043 输出PATest
  9. 使 Inno Setup 打包出的安装程序以管理员身份运行
  10. ORA-12541:TNS:无监听程序 配置Oracle Myeclipse无法连接上 花费一天时间解决掉的
  11. 安装torch-opencv
  12. node(2)
  13. 腾讯云linux+kodexplorer可道云搭建私有云盘
  14. 动态设置progressBar的进度
  15. Es+kafka搭建日志存储查询系统(设计)
  16. 为什么有logistics函数
  17. DOM中的事件傳播機制
  18. 子树(LintCode)
  19. PHP生成唯一的订单号
  20. PTA 11-散列2 Hashing (25分)

热门文章

  1. 入门平衡树: Treap
  2. AsyncAPI 试用
  3. 常用方法 DataTable转换为Html
  4. 【题解】洛谷 P1083 借教室
  5. PKUSC2019滚粗记
  6. nginx之http反向代理多台服务器
  7. 驱动中遍历模块,以及获取ntoskrnl.exe基址
  8. linux高性能服务器编程 (八) --高性能服务器程序框架
  9. python .socket 连接
  10. Spring系列:下载