亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        Java在高并發(fā)網(wǎng)絡(luò)編程中的應(yīng)用

        2017-01-27 11:12:12魯兆碩
        科學(xué)中國(guó)人 2017年9期
        關(guān)鍵詞:編程語言數(shù)據(jù)源編程

        魯兆碩

        南陽農(nóng)業(yè)職業(yè)學(xué)院

        Java在高并發(fā)網(wǎng)絡(luò)編程中的應(yīng)用

        魯兆碩

        南陽農(nóng)業(yè)職業(yè)學(xué)院

        簡(jiǎn)單介紹目前多種編程語言,詳細(xì)探討Java NIO原理與應(yīng)用,對(duì)Mina與Netty框架的原理與特性詳細(xì)進(jìn)行描述。

        Java;網(wǎng)絡(luò)編程;NIO技術(shù);Mina;Netty

        當(dāng)前約有100余種常見編程語言,使用較多的有30多種,而Java在諸多編程語言中,很多時(shí)候排在首位。不同編程語言各有特點(diǎn)與優(yōu)勢(shì),每種編程語言在產(chǎn)生的背景環(huán)境中,都可發(fā)揮出最佳效果。如C語言在系統(tǒng)級(jí)編程及底層程序編寫中應(yīng)用廣泛;而C語言的延伸版C++則在較高程序的編寫中提高了編寫效率;PHP編程語言在Web應(yīng)用的快速開發(fā)中應(yīng)用效果顯著。本文研究的Java編程語言則在網(wǎng)絡(luò)編程中效果較好?,F(xiàn)階段,互聯(lián)網(wǎng)的訪問壓力較大,如微博、搜索引擎、社交網(wǎng)絡(luò)等,采用Java對(duì)高并發(fā)網(wǎng)絡(luò)程序進(jìn)行編寫,效率與速度均比較理想。

        1、基于Java的高并發(fā)編程架構(gòu)的不同應(yīng)用

        當(dāng)前,Java的不同版本功能也有所不同,如在1.4版本中,具有哦NIO相關(guān)的API,極大的提升了Java的網(wǎng)絡(luò)編程能力?,F(xiàn)階段不聯(lián)網(wǎng)中高并發(fā)應(yīng)用主要包含兩類:?jiǎn)螖?shù)據(jù)源與多數(shù)據(jù)源,Java在這兩種高并發(fā)模式下可選擇不同的處理模式。

        單數(shù)據(jù)源情況下,添加到request等待隊(duì)列,只要隊(duì)列長(zhǎng)度不為零,則request按排列順序依次處理,等待隊(duì)列中的request通過連續(xù)池循環(huán)完成。在request取出后,在連接池內(nèi)選擇空閑鏈接,發(fā)送request請(qǐng)求,并做好數(shù)據(jù)接收的準(zhǔn)備,數(shù)據(jù)接收完成后,利用response將數(shù)據(jù)返回給用戶,鏈接重新進(jìn)入連接池。如果連接池沒沒有空閑鏈接,則對(duì)連接池的容量進(jìn)行檢查,看是否到達(dá)上限,如果沒有,則建立新鏈接,并將鏈接添加到連接池進(jìn)行使用;反之,等待并輪詢,在有空閑鏈接的時(shí)候再對(duì)request進(jìn)行處理。對(duì)每個(gè)request進(jìn)行處理時(shí),注意超時(shí)鏈接,如果存在,則重置鏈接,防止等待隊(duì)伍出現(xiàn)阻塞情況。

        多數(shù)據(jù)源情況下,需要對(duì)NIO技術(shù)進(jìn)行應(yīng)用,比單數(shù)據(jù)源要復(fù)雜。如果仍采用單數(shù)據(jù)源處理方法,假如從n個(gè)數(shù)據(jù)源內(nèi),request需要獲得數(shù)據(jù),采用串行處理方式,每個(gè)數(shù)據(jù)源花費(fèi)時(shí)間為t,那么處理一個(gè)request就需要花費(fèi)n×t的時(shí)間,花費(fèi)的時(shí)間長(zhǎng)是一方面,對(duì)處理性能也會(huì)產(chǎn)生極大影響。而Java1.4版本中,增加了NIO技術(shù),對(duì)多數(shù)據(jù)源的并發(fā)請(qǐng)求可高效處理,NIO中配置Socket,在一個(gè)request處理中,可并發(fā)向多數(shù)據(jù)源同時(shí)發(fā)出請(qǐng)求,不需要逐一等待返還數(shù)據(jù),在一個(gè)線程內(nèi)即可完成。這種處理模式下,程序始終處于忙碌狀態(tài),但不會(huì)由于某個(gè)數(shù)據(jù)源連接阻塞,導(dǎo)致整體性能受到影響。

        2、Java網(wǎng)絡(luò)編程框架

        2.1 Mina框架

        基于Java NIO出現(xiàn)Mina網(wǎng)絡(luò)編程應(yīng)用框架,Mina框架的應(yīng)用,開發(fā)出的網(wǎng)絡(luò)應(yīng)用程序擴(kuò)展性好、高并發(fā),且開發(fā)速度快捷、方便。現(xiàn)階段,Mina的版本也比較多,Mina2.3中提供了Client封裝與Server封裝,Mina框架不管是在服務(wù)器端還是客戶端應(yīng)用程序的開發(fā)中,都非常方便。Mina將網(wǎng)絡(luò)應(yīng)用程序地層的數(shù)據(jù)傳輸與應(yīng)用程序分開,開發(fā)人員不需要花大量時(shí)間處理底層邏輯,只需要專心對(duì)應(yīng)用程序的業(yè)務(wù)邏輯進(jìn)行研究即可。Mina也是在NIO技術(shù)基礎(chǔ)上實(shí)現(xiàn)的,屬于非阻塞通信的網(wǎng)絡(luò)編程框架,其不同之處子對(duì)對(duì)阻塞方式的請(qǐng)求也支持。Mina最主要的特點(diǎn)是業(yè)務(wù)應(yīng)用邏輯與底層網(wǎng)絡(luò)通信邏輯分離,程序耦合性降低,這是很多應(yīng)用框架所不具備的,并且是發(fā)展的一個(gè)方向。IoServer、IoHandler、IoSes?sion、IoFuture及IoFiter是Mina框架的核心,在整個(gè)框架中,這些因素具有重要作用。

        2.2 Netty框架

        Netty與Mina框架相同,都是基于NIO技術(shù)實(shí)現(xiàn)的Netty為異步網(wǎng)絡(luò)通訊框架,對(duì)服務(wù)器段與客戶端進(jìn)行封裝。Channel、Buffer及Event是Netty框架的三個(gè)基本組成部分,在這三部分基礎(chǔ)上建立Netty所有的上層特性。Netty框架的組建中,對(duì)多種協(xié)議的特點(diǎn)進(jìn)行了吸收,包含F(xiàn)TP、SMTP、HTTP等,通過設(shè)計(jì),使Netty在網(wǎng)絡(luò)編程應(yīng)用中效果非常理想。

        2.3 Mina框架與Netty框架對(duì)比

        兩種編程框架都表現(xiàn)的非常優(yōu)秀,對(duì)兩種編程框架的學(xué)習(xí),可使網(wǎng)絡(luò)編程效率明顯提高。Mina框架和Netty框架不僅僅是簡(jiǎn)單的對(duì)Java NIO進(jìn)行封裝,更重要的是為開發(fā)者提供了使用的平臺(tái)。兩種編程框架在實(shí)踐中都得到了驗(yàn)證,能夠有效節(jié)約開發(fā)實(shí)踐,程序的擴(kuò)展性與穩(wěn)定性均比較理想。

        Mina框架與Netty框架學(xué)習(xí)也比較簡(jiǎn)單,但要將兩種編程框架強(qiáng)大的功能和豐富的特性完全發(fā)揮出來,是非常難的,一方面要對(duì)Java基礎(chǔ)牢固進(jìn)行掌握,并對(duì)Java NIO機(jī)制深入理解,另一方面還要對(duì)框架本身進(jìn)行深入研究,對(duì)源代碼認(rèn)真分析閱讀,才能對(duì)整個(gè)框架真正的理解和有效的利用。雖然Mina框架與Netty框架比較類似,但各自均有自身獨(dú)特的特點(diǎn),Mina在數(shù)據(jù)傳輸與接收性能方面較強(qiáng)大,擁有Filter機(jī)制,封裝數(shù)據(jù)程度高,在以數(shù)據(jù)傳輸為主要業(yè)務(wù)的服務(wù)器中應(yīng)用效果較好,如FTP、文件共享等服務(wù)器中。而Netty框架在訪問性能上優(yōu)于Mina框架,在高并發(fā)互聯(lián)網(wǎng)中Net?ty更適合飲用,如新媒體、社交網(wǎng)絡(luò)中的應(yīng)用。因此,選擇何種編程框架,要與具體應(yīng)用結(jié)合進(jìn)行選擇。

        3、結(jié)語

        當(dāng)前,互聯(lián)網(wǎng)的發(fā)展速度非常快,各種新應(yīng)用不斷涌現(xiàn),對(duì)于編程人員而言,要求不斷推出新產(chǎn)品。在這種情況下,對(duì)于IT從業(yè)人員來說,選擇成熟的模塊與框架,可以提高應(yīng)用開發(fā)的速度。而Java的特性正好符合這一需求,其用于多種成熟的框架,而對(duì)于編程人員來說,需要對(duì)Java的性能廣泛了解,對(duì)其包含的不同框架,能夠合理進(jìn)行選擇。

        [1]王鳳玲.利用Java編程實(shí)現(xiàn)網(wǎng)絡(luò)功能[J].電子技術(shù),2012,08(14):15-16.

        [2]錢娟.JAVA網(wǎng)絡(luò)編程的探討[J].煤炭技術(shù),2012,11(20):258-260.

        [3]李政.試論Java編程的現(xiàn)狀及其發(fā)展前景[J].電子制作,2013, 19(06):81.

        猜你喜歡
        編程語言數(shù)據(jù)源編程
        我家有只編程貓
        我家有只編程貓
        我家有只編程貓
        我家有只編程貓
        壓力-體積轉(zhuǎn)換在CFC編程語言中的實(shí)現(xiàn)解析
        Java編程語言的特點(diǎn)與應(yīng)用
        淺談不同編程語言對(duì)計(jì)算機(jī)軟件開發(fā)的影響
        電子制作(2018年1期)2018-04-04 01:48:36
        Web 大數(shù)據(jù)系統(tǒng)數(shù)據(jù)源選擇*
        基于不同網(wǎng)絡(luò)數(shù)據(jù)源的期刊評(píng)價(jià)研究
        面向?qū)ο骔eb開發(fā)編程語言的的評(píng)估方法
        国产精品流白浆喷水| 一本无码中文字幕在线观| 日韩aⅴ人妻无码一区二区| 男人和女人高潮免费网站| 国产一区二区三区精品久久呦| av网站一区二区三区| 午夜视频国产在线观看| 和外国人做人爱视频| 国产欧美日韩午夜在线观看 | 99热这里只有精品久久6| 国产亚洲3p一区二区| 人人妻人人澡人人爽超污| 久久久久99精品成人片试看| 日韩国产欧美成人一区二区影院| 午夜视频在线观看日本| 久久人妻少妇嫩草av| 免费无码又爽又刺激网站| 99精品国产第一福利网站| 精品人妻一区二区三区狼人| 人妻丰满av无码中文字幕| 蜜桃精品免费久久久久影院| 亚洲人成绝费网站色www| 国产的自拍av免费的在线观看| 亚洲成av人的天堂在线观看| 精品国产亚洲AⅤ麻豆| 青青草视频国产在线观看| 中文字幕一区二区中文| 亚洲av无码一区二区三区观看| 亚洲中文字幕在线一区二区三区| 日韩伦理av一区二区三区| 中文有码无码人妻在线| 国产精品久久久久电影网| 无码啪啪人妻| 日本国产精品久久一线| 亚洲精品乱码久久久久久金桔影视| 亚洲欧洲国产日产国码无码| 精品国产日产av在线| 中文字幕日韩人妻在线视频 | 久久夜色精品国产三级| 狠狠色噜噜狠狠狠8888米奇| 亚洲精品一区二区三区大桥未久|