日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

从Jetty、Tomcat和Mina中提炼NIO构架网络服务器的经典模式(三)

發(fā)布時(shí)間:2025/5/22 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 从Jetty、Tomcat和Mina中提炼NIO构架网络服务器的经典模式(三) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>

從Jetty、Tomcat和Mina中提煉NIO構(gòu)架網(wǎng)絡(luò)服務(wù)器的經(jīng)典模式(三) 博客分類(lèi): java

最后我們?cè)倏纯碞IO方面最著名的框架Mina,拋開(kāi)Mina有關(guān)session和處理鏈條等方面的設(shè)計(jì),單單挑出前端網(wǎng)絡(luò)層處理來(lái)看,也采用的是與Jetty和Tomcat類(lèi)似的模式,只不過(guò)它做了些簡(jiǎn)化,它沒(méi)有隔開(kāi)請(qǐng)求偵聽(tīng)和請(qǐng)求處理兩個(gè)階段,因此,宏觀上看它只分為兩個(gè)階段。

先看看它的類(lèi)圖:

其中:

SocketAcceptor起線程調(diào)用SocketAcceptor.Work負(fù)責(zé)新連接偵聽(tīng),并交給SocketIoProcessor處理

SocketIoProcessor起線程調(diào)用SocketIoProcessor.Work負(fù)責(zé)偵聽(tīng)所管轄的channel隊(duì)列, select到新請(qǐng)求后交給IoFilterChain處理

IoFilterChain組裝了mina的處理鏈條

在整個(gè)服務(wù)端處理請(qǐng)求的過(guò)程可以分為兩個(gè)階段,時(shí)序圖如下所示:

階段一:監(jiān)聽(tīng)并建立連接

階段二:?監(jiān)聽(tīng)并處理客戶(hù)端的請(qǐng)求

?

總結(jié)來(lái)看Jetty、tomcat和Mina,我們也大概清楚了該如何基于NIO來(lái)構(gòu)架網(wǎng)絡(luò)服務(wù)器,通過(guò)這個(gè)提煉出來(lái)的模式,我寫(xiě)了個(gè)很簡(jiǎn)單的NIO Server,在保持連接的情況下,可以很輕松的保持6萬(wàn)連接(由于有65535連接限制),并能在負(fù)載只有3左右的情況下(4核),承擔(dān)3到4萬(wàn)的TPS請(qǐng)求(當(dāng)然做的事情很簡(jiǎn)單,僅僅是把buffer轉(zhuǎn)化為自定義協(xié)議的包,然后再把包轉(zhuǎn)為buffer寫(xiě)到客戶(hù)端)。因此簡(jiǎn)單地實(shí)踐一下可以證明這個(gè)模式的有效性,不妨再看看這個(gè)圖,希望對(duì)大伙以后寫(xiě)server有用:

http://blog.csdn.net/cutesource/article/details/6192163

轉(zhuǎn)載于:https://my.oschina.net/xiaominmin/blog/1599305

《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專(zhuān)家共同創(chuàng)作,文字、視頻、音頻交互閱讀

總結(jié)

以上是生活随笔為你收集整理的从Jetty、Tomcat和Mina中提炼NIO构架网络服务器的经典模式(三)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。