免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
Netty和Tomcat的區(qū)別已經(jīng)性能對比
一、Netty和Tomcat有什么區(qū)別? 

Netty和Tomcat最大的區(qū)別就在于通信協(xié)議,Tomcat是基于Http協(xié)議的,他的實(shí)質(zhì)是一個基于http協(xié)議的web容器,但是Netty不一樣,他能通過編程自定義各種協(xié)議,因?yàn)閚etty能夠通過codec自己來編碼/解碼字節(jié)流,完成類似redis訪問的功能,這就是netty和tomcat最大的不同。

有人說netty的性能就一定比tomcat性能高,其實(shí)不然,tomcat從6.x開始就支持了nio模式,并且后續(xù)還有arp模式——一種通過jni調(diào)用apache網(wǎng)絡(luò)庫的模式,相比于舊的bio模式,并發(fā)性能得到了很大提高,特別是arp模式,而netty是否比tomcat性能更高,則要取決于netty程序作者的技術(shù)實(shí)力了。 
為什么Netty受歡迎?

netty是一款收到大公司青睞的框架,在我看來,netty能夠受到青睞的原因有三: 
并發(fā)高 
傳輸快 
封裝好 
Netty為什么并發(fā)高 

Netty是一款基于NIO(Nonblocking I/O,非阻塞IO)開發(fā)的網(wǎng)絡(luò)通信框架,對比于BIO(Blocking I/O,阻塞IO),他的并發(fā)性能得到了很大提高。

NIO 2.0里終于有AIO了,Linux上用AIO,Windows上用IOCP,都支持了概念上的最后一種IOasynchronous I/O

  1. 就IO而言:概念上有5中模型:blocking I/O,nonblocking I/O,I/O multiplexing (select and poll),signal driven I/O (SIGIO),asynchronous I/O (the POSIX aio_functions)。 
  2. 然后呢 不同的操作系統(tǒng)對上述模型支持不同: unix支持io多路復(fù)用,不同系統(tǒng)叫法不同 :freebsd里面叫 kqueue;linux 是epoll。而windows: 2000的時候就誕生了IOCP支持最后一種異步I/O 
  3. java是一種跨平臺語言,為了支持異步IO,誕生了nio,Java1.4引入的NIO 1.0是基于I/O復(fù)用的。在各個平臺上會選擇不同的復(fù)用方式。Linux用的epoll,BSD上用kqueue,Windows上應(yīng)該是重疊I/O(肯定不是IOCP)

但是nio直接使用比較難用,所以有了mina,netty這些針對網(wǎng)絡(luò)io部分(tcp/udp-傳輸層)的封裝(nio也有非網(wǎng)絡(luò)io部分),為了使nio更易用。 
http是應(yīng)用層的協(xié)議。 
servlet3.0則是另外一種東西,不是對協(xié)議的封裝,javaee6眾多規(guī)范中的一個,但凡javaee6的實(shí)現(xiàn)(或者像tomcat這種web容器部分的實(shí)現(xiàn)),都會支持servlet3.0,servlet理論上可以支持多種應(yīng)用層協(xié)議(不單單只是http),而servlet3.0以后提供的異步特性與javase提供的nio或aio無直接關(guān)系,就是使用bio一樣可以實(shí)現(xiàn)servlet3.0中提供的異步特性。 
異步只是一種概念,異步與否要看,上層使用的異步,而支持的下層完全可能是阻塞的。

  • tomcat就是針對http層的,所以我建議http還是選擇tomcat(或者其他成熟的http-server),并不是說netty不好,而是你的選擇問題。
  • netty是一個網(wǎng)絡(luò)組件,tcp,udp,http都可以弄,但是官方文檔都是些hello wolrd級別的。如果你非常了解http結(jié)構(gòu),完全可以基于netty搞出一個比tomcat牛的http server。如果做tcp開發(fā),netty不二之選!

現(xiàn)在高并發(fā)分布式網(wǎng)站架構(gòu)一般采用nginx(前端負(fù)載均衡)+ Netty/Tomcat(HTTP)

Netty是基于Java NIO開發(fā)的,而Tomcat是Apache下的針對HTTP的服務(wù)器項(xiàng)目,前者更像一個中間件框架,后者更像一個工具




本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
tomcat7.0.8的bio,nio.apr高級運(yùn)行模式
IO回憶錄之怎樣過目不忘(BIO/NIO/AIO/Netty)2017版
『互聯(lián)網(wǎng)架構(gòu)』軟件架構(gòu)
Comet基于 HTTP 長連接的“服務(wù)器推”技術(shù)在Java Web實(shí)時系統(tǒng)開發(fā)中的應(yīng)用
web push
Tomcat Servlet面試題都在這里
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服