reactor 模式的五大組成部分
對比
每一部分的理解
- Handle
句柄或者描述符。 本質(zhì)上是操作系統(tǒng)提供的一種資源僚纷。表示一個一個的事件裕寨。比如文件描述符召娜,socket描述符。事件可以來自于外部排监,也可以來自于內(nèi)部狰右。所以 Handle是事件產(chǎn)生的發(fā)源地。
- Synchrronous Event Demultiplexer (同步事件分離器)
本質(zhì)上是一個系統(tǒng)調(diào)用舆床。等待事件的發(fā)生棋蚌。調(diào)用方在調(diào)用他的時候會被阻塞。一直到有事件為止挨队。對于Linux來說谷暮,同步事件分離器就是I/0的多路復用機制。比如selct盛垦、poll湿弦、epoll 。在java nio中對應的就是 selector.select() 方法
- Event Handler (事件處理器)
本身由多個回調(diào)方法組成腾夯〖瞻#回調(diào)方法構(gòu)成了應用相關的某個事件的反饋機制蔬充。
- Concrete Event Handler (具體的事件處理器)
事件處理器的實現(xiàn)。通過事件對應的回調(diào)時間班利,實現(xiàn)具體的業(yè)務邏輯饥漫。對應的是netty中一個一個的自定義的handler
- Initial Dispatcher (初始分發(fā)器)
實際上就是Reactor角色。本身是事件處理的核心所在肥败。一旦事件發(fā)生趾浅。分發(fā)起就會調(diào)用事件處理器,調(diào)用相關的回調(diào)方法來處理這些事件馒稍。