最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

Netty的設(shè)計(jì)架構(gòu)

2023-07-02 23:30 作者:懶人Java屈原  | 我要投稿

什么是Netty

上一篇文章?一文讀懂NIO?中,我們介紹了NIO, Java的NIO類庫(kù)與API都相當(dāng)復(fù)雜,想要寫好一個(gè)高質(zhì)量的NIO的程序,你必須精通網(wǎng)絡(luò)編程與多線程的知識(shí)。在這個(gè)背景下Netty誕生了,只要進(jìn)行簡(jiǎn)單的編碼就能開發(fā)出一個(gè)可靠、高性能的NIO程序。

Reactor模式

Reactor模型是一個(gè)事件驅(qū)動(dòng)的模型,也是Netty參照的模型。

Reactor的組成:

1.Reactor

作為一個(gè)合格的資本家,你要懂得壓縮成本。還記得?《3分鐘了解linux網(wǎng)絡(luò)IO模型》里的 多路復(fù)用嗎,因?yàn)橄到y(tǒng)發(fā)不出工資,只留下一個(gè)盯梢的,把其他人畢業(yè)向社會(huì)輸送人才。Reactor模式里面,Reactor就是那個(gè)被留下的幸運(yùn)兒。

2.Handler

就是干雜活的社畜,實(shí)際上的讀、寫操作都是他們?cè)诟伞?/p>

Reactor的3種模式:

1.單線程模式

client發(fā)出請(qǐng)求,Reactor通過acceptor接收請(qǐng)求后,就創(chuàng)建一個(gè)handler去干活。這個(gè)模式很簡(jiǎn)單,但是一個(gè)社畜(handler)的工作能力是有限的,一旦它阻塞住了,Reactor就接不了客了。這也是redis的設(shè)計(jì)模型。

2.多線程模式


公司業(yè)務(wù)規(guī)模擴(kuò)大了,老板覺得只有一個(gè)社畜有點(diǎn)忙不過來,就找了多個(gè)社畜一起干活,這就是多線程模式。這個(gè)階段handler也從單線程這個(gè)創(chuàng)業(yè)初期解放出來了,具體干活的事情就丟給線程池中某個(gè)線程去干,它只要結(jié)果,然后給出反饋。

3.主從Reactor模型

公司規(guī)模再度擴(kuò)大后,Reactor這個(gè)管理者開始忙不過來,他既要去接待客戶(client),又要下發(fā)任務(wù)給社畜(handler)。所以老板又找了個(gè)人來進(jìn)行職能切分,主Reactor用來接待所有來訪的客戶,把需求通過acceptor提給子Reactor。子Reactor開始指揮下面的社畜干活。

這種模式在業(yè)界廣泛應(yīng)用,如Nginx的主從多進(jìn)程模式,Netty的主從多線程模式。

Netty的主從多線程模式

Netty的主從模式就是改造至Reactor的主從多線程模式

Boss Group

它是個(gè)線程池,專門用來接收客戶端的連接請(qǐng)求

Worker Group

它也是個(gè)線程池,專門用來處理網(wǎng)絡(luò)的讀寫操作。


Netty的設(shè)計(jì)架構(gòu)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
江达县| 宿松县| 白玉县| 新乐市| 尖扎县| 永登县| 三江| 灵丘县| 泗阳县| 大同市| 澳门| 凉城县| 林周县| 青海省| 北票市| 溧水县| 乐东| 永寿县| 新沂市| 古浪县| 自贡市| 澄江县| 马鞍山市| 和田县| 陆丰市| 岢岚县| 宽甸| 高邮市| 宁阳县| 邢台市| 子洲县| 贵港市| 庆城县| 漾濞| 敦煌市| 涪陵区| 蒙山县| 台东县| 福安市| 宁国市| 瑞丽市|