Reactor是基于NIO中實(shí)現(xiàn)多路復(fù)用的一種模式.
什么是Reactor模式
- 同步的等待多個(gè)事件源到達(dá)(采用select()實(shí)現(xiàn))
- 將事件多路分解以及分配相應(yīng)的事件服務(wù)進(jìn)行處理,這個(gè)分派采用server集中處理(dispatch)
- 分解的事件以及對應(yīng)的事件服務(wù)應(yīng)用從分派服務(wù)中分離出去(handler)
為什么使用Reactor模式
常見的網(wǎng)絡(luò)服務(wù)中,如果每一個(gè)客戶端都維持一個(gè)與登陸服務(wù)器的連接。那么服務(wù)器將維護(hù)多個(gè)和客戶端的連接以出來和客戶端的contnect 疼阔、read朽缴、write 饰剥,特別是對于長鏈接的服務(wù)浆西,有多少個(gè)c端洋魂,就需要在s端維護(hù)同等的IO連接聋亡。這對服務(wù)器來說是一個(gè)很大的開銷肘习。
三種Reactor模型
-
單Reactor單線程模型
-
單Reactor多線程模型
-
多Reactor多線程模型