不懂Java Reactor反應(yīng)器模式是什么??其實(shí)想解決這個(gè)問題也不難,下面讓小編帶著大家一起學(xué)習(xí)怎么去解決,希望大家閱讀完這篇文章后大所收獲。
創(chuàng)新互聯(lián)從2013年開始,先為遂溪等服務(wù)建站,遂溪等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為遂溪企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
Reactor反應(yīng)器模式
到目前為止,高性能網(wǎng)絡(luò)編程都繞不開反應(yīng)器模式。很多著名的服務(wù)器軟件或者中間件都是基于反應(yīng)器模式實(shí)現(xiàn)的,如Nginx、redis、Netty。
反應(yīng)器模式是高性能網(wǎng)絡(luò)編程的必知、必會(huì)的模式。
Reactor簡介
反應(yīng)器模式由Reactor反應(yīng)器線程、Handlers處理器兩大角色組成:
(1)Reactor反應(yīng)器線程的職責(zé):負(fù)責(zé)響應(yīng)IO事件,并且分發(fā)到Handlers處理器。
(2)Handlers處理器的職責(zé):非阻塞的執(zhí)行業(yè)務(wù)處理邏輯。
從上面的反應(yīng)器模式定義,看不出這種模式有什么神奇的地方。當(dāng)然,從簡單到復(fù)雜,反應(yīng)器模式也有很多版本。根據(jù)前面的定義,僅僅是最為簡單的一個(gè)版本。
多線程OIO的致命缺陷
在Java的OIO編程中,最初和最原始的網(wǎng)絡(luò)服務(wù)器程序,是用一個(gè)while循環(huán),不斷地監(jiān)聽端口是否有新的連接。如果有,就調(diào)用一個(gè)和處理函數(shù)來完成,示例代碼如下:
@Test public void client() throws IOException { Socket client = new Socket("127.0.0.1", 9999); Writer writer = new OutputStreamWriter(client.getOutputStream()); writer.write("Hello World"); writer.flush(); writer.close(); client.close(); } @Test public void server() throws IOException { ServerSocket server = new ServerSocket(9999); while (true){ Socket socket = server.accept(); Reader reader = new InputStreamReader(socket.getInputStream()); print(reader); reader.close(); socket.close(); server.close(); } }
這種方法的最大問題是:如果前一個(gè)網(wǎng)絡(luò)連接的handle(socket)沒有處理完,那么后面的連接請求沒法被接收,于是后面的請求通通會(huì)被阻塞住,服務(wù)器的吞吐量就太低了。對于服務(wù)器來說,這是一個(gè)嚴(yán)重的問題。
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享Java Reactor反應(yīng)器模式是什么?內(nèi)容對大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,遇到問題就找創(chuàng)新互聯(lián),詳細(xì)的解決方法等著你來學(xué)習(xí)!
文章標(biāo)題:JavaReactor反應(yīng)器模式是什么?
分享地址:http://jinyejixie.com/article30/jjhspo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司、虛擬主機(jī)、做網(wǎng)站、面包屑導(dǎo)航、微信公眾號、網(wǎng)站內(nèi)鏈
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)