在正式进入Netty编程模型之前,还需要了解Reactor模式,因为netty就是基于Reactor模式做了一定的改进形成的netty模型。
一. 什么是Reactor模式
首先,Reactor是一种设计模式,不是具体的类,上篇文章中《Netty系列(一)java NIO详解及使用 Demo》,简单介绍了java NIO相关内容,其中的demo就是Reactor模式的一种最简单的实现。
实际上的Reactor模式,是基于Java NIO的,在他的基础上,抽象出来两个组件——Reactor和Handler两个组件:
- Reactor:负责响应IO事件,当检测到一个新的事件,将其发送给相应的Handler去处理;新的事件包含连接建立就绪、读就绪、写就绪等。
- Handler:将自身(handler)与事件绑定,负责事件的处理,完成channel的读入,完成处理业务逻辑后,负责将结果写出channel。
如果要自己实现Reactor模式,其中的Reactor和Handler都是需要我们自定义的。
Reactor与Selector的关系?
它俩不是一个层面的东西,Reactor是一种模型,算是设计模式,也就是一种概念;Selector是java NIO包中的一个具体的类,实现Reactor模型,要用到selector这个类。真正实现的时候,我们还会自己创建一个Reactor(名字随意)类,这个类里面包含使用Selector工具类。
二. Reactor模式实现种类
Reactor大致有3种实现方式,每种都有它针对的使用场景,具体可以参考大佬的文档《

最低0.47元/天 解锁文章
1698

被折叠的 条评论
为什么被折叠?



