天堂国产午夜亚洲专区-少妇人妻综合久久蜜臀-国产成人户外露出视频在线-国产91传媒一区二区三区

當(dāng)前位置:主頁 > 科技論文 > 軟件論文 >

分布式RPC框架的設(shè)計與實現(xiàn)

發(fā)布時間:2020-08-22 17:57
【摘要】:隨著互聯(lián)網(wǎng)技術(shù)的不斷突破,互聯(lián)網(wǎng)應(yīng)用所具備的功能也日益增多;ヂ(lián)網(wǎng)企業(yè)為了能夠吸引更多的用戶群體,不斷的完善并擴展自己的系統(tǒng),給用戶提供更多元的服務(wù)。伴隨著系統(tǒng)的不斷完善,業(yè)務(wù)規(guī)模不斷壯大,系統(tǒng)也將變得龐大且復(fù)雜。這將大大的提高了系統(tǒng)的交互、版本迭代以及后期維護提的成本。而將系統(tǒng)本身按業(yè)務(wù)功能進行拆分,拆分后的各個模塊通過服務(wù)發(fā)布和服務(wù)調(diào)用的形式協(xié)同工作,則可以在保證系統(tǒng)的性能前提下,大幅度降低上述所需要的成本。分布式RPC(Remote Procedure Call)框架則是工作在系統(tǒng)拆分后的各個模塊之間的中間件,協(xié)同各個模塊之間的通信,保證系統(tǒng)的正常運行。傳統(tǒng)的遠程過程調(diào)用方式通常采用HTTP協(xié)議進行通信,需為每一個調(diào)用建立一個TCP連接,且每次請求和響應(yīng)都會攜帶部分無效字段,影響服務(wù)調(diào)用效率。本文所設(shè)計的RPC框架通過自定義通信數(shù)據(jù)格式來減少無效字段的傳輸,同時本框架底層網(wǎng)絡(luò)通信采用了異步通信框架。本框架按功能可分為數(shù)據(jù)處理模塊、服務(wù)發(fā)布模塊、服務(wù)調(diào)用模塊。數(shù)據(jù)處理模塊用于請求數(shù)據(jù)和響應(yīng)數(shù)據(jù)的收發(fā)以及它們的編碼和解碼。服務(wù)發(fā)布模塊通過服務(wù)注冊、服務(wù)發(fā)布實現(xiàn)了該框架高性能和高可用行性,同時還支持服務(wù)水平擴張。服務(wù)調(diào)用模塊是將經(jīng)過數(shù)據(jù)處理模塊后的數(shù)據(jù)作為服務(wù)調(diào)用的參數(shù),對相應(yīng)服務(wù)進行調(diào)用。其中服務(wù)調(diào)用模塊為RPC框架的核心功能模塊,服務(wù)的調(diào)用采用了負載均衡策略,有效的提高硬件資源的利用率。本框架與傳統(tǒng)遠程調(diào)用過程方式相比,在數(shù)據(jù)的傳輸格式上進行了自定義,提高了系統(tǒng)有效吞吐量。在信息交互層面采用了異步通信框架Netty,讓服務(wù)調(diào)用方在發(fā)起請求后能夠較快的得到響應(yīng)。服務(wù)的發(fā)布采用了注冊+發(fā)布的形式,提高了框架的可用性和擴展性,能夠有效的預(yù)防單點故障,且很好的支持服務(wù)的水平擴展。本框架工作在業(yè)務(wù)復(fù)雜的系統(tǒng)中時,在保證服務(wù)請求響應(yīng)速度的前提下,對系統(tǒng)的業(yè)務(wù)模塊起到了很好的解耦作用。
【學(xué)位授予單位】:華中科技大學(xué)
【學(xué)位級別】:碩士
【學(xué)位授予年份】:2018
【分類號】:TP311.52
【圖文】:

IO模型


BIO 編程是同步阻塞開發(fā)模型,其模型結(jié)構(gòu)圖2-1 所示:圖 2-1 同步阻塞 IO 模型Java BIO 通信模型是最為經(jīng)典的客戶端/服務(wù)器通信模型,其中服務(wù)端的運行依賴于主機的 IP 地址和端口號,服務(wù)端通過對它們進行綁定,提供唯一的地址信息,開放訪問?蛻舳藙t通過向與服務(wù)器所對應(yīng)的地址信息發(fā)起連接請求,連接建立完畢后,雙方便可通過套接字(Socket)進行網(wǎng)絡(luò)通信。Java BIO 通信過程如下:首先服務(wù)端開啟一個單獨的線程 Acceptor,用于監(jiān)聽與服務(wù)器綁定的端口是否有來自客戶端的連接建立的請求,若有請求,則直接對該請求進行接收。Acceptor 每次接收到來自客戶端的請求后,都會為此次連接開啟一個新的線程,用于處理客戶端的請求[25]。隨著請求的處理完成,伴隨此次連接建立的線程也隨之被銷毀。Java BIO 的服務(wù)端通信模型為一客戶端一線程,模型如圖 2-2 所示:

通信模型,服務(wù)端,線程


圖 2-2 Java BIO 服務(wù)端通信模型該模型缺乏彈性伸縮能力,服務(wù)端線程個數(shù)與客戶端并發(fā)訪問數(shù)呈 1:1 的正比關(guān)系,隨著用戶訪問不斷增加,線程數(shù)會不斷膨脹,線程會因此而被不斷的創(chuàng)建,服務(wù)器會對運行中的線程上下文進行頻繁的切換,消耗大量資源的同時使得系統(tǒng)性能急劇下降,最終會出現(xiàn)線程堆棧溢出、創(chuàng)建新線程失敗等異常,從而導(dǎo)致服務(wù)端宕機。上述模型面對大量用戶并發(fā)訪問時,會產(chǎn)生大量線程,嚴(yán)重影響系統(tǒng)的性能。針對這種不足可以采用線程池對上述模型加以改善。線程池的引入可以避免線程無休止的創(chuàng)建,用戶可以根據(jù)主機性能對線程池中的線程數(shù)進行配置。當(dāng)用戶并發(fā)量過大,系統(tǒng)無法正常處理時,也可以通過配置線程池的拒絕策略[26],對不能處理的請求進行相應(yīng)處理。帶線程池的 Java BIO 服務(wù)端通信模型如圖 2-3 所示:

通信模型,服務(wù)端,帶線,線程


圖 2-2 Java BIO 服務(wù)端通信模型該模型缺乏彈性伸縮能力,服務(wù)端線程個數(shù)與客戶端并發(fā)訪問數(shù)呈 1:1 的正比關(guān)系,隨著用戶訪問不斷增加,線程數(shù)會不斷膨脹,線程會因此而被不斷的創(chuàng)建,服務(wù)器會對運行中的線程上下文進行頻繁的切換,消耗大量資源的同時使得系統(tǒng)性能急劇下降,最終會出現(xiàn)線程堆棧溢出、創(chuàng)建新線程失敗等異常,從而導(dǎo)致服務(wù)端宕機。上述模型面對大量用戶并發(fā)訪問時,會產(chǎn)生大量線程,嚴(yán)重影響系統(tǒng)的性能。針對這種不足可以采用線程池對上述模型加以改善。線程池的引入可以避免線程無休止的創(chuàng)建,用戶可以根據(jù)主機性能對線程池中的線程數(shù)進行配置。當(dāng)用戶并發(fā)量過大,系統(tǒng)無法正常處理時,也可以通過配置線程池的拒絕策略[26],對不能處理的請求進行相應(yīng)處理。帶線程池的 Java BIO 服務(wù)端通信模型如圖 2-3 所示:

【參考文獻】

相關(guān)期刊論文 前9條

1 秦方鈺;劉冬梅;徐棟;;一種面向SOA架構(gòu)的數(shù)據(jù)業(yè)務(wù)總線應(yīng)用研究[J];電子技術(shù)與軟件工程;2015年09期

2 周康;李覬;董科軍;南凱;;一種基于Thrift的日志收集分析系統(tǒng)[J];科研信息化技術(shù)與應(yīng)用;2015年02期

3 劉芬;王芳;田昊;;基于Zookeeper的分布式鎖服務(wù)及性能優(yōu)化[J];計算機研究與發(fā)展;2014年S1期

4 解志君;;代理模式在Java中的應(yīng)用[J];軟件;2014年05期

5 程龍;李冶;;應(yīng)用ASM修改JAVA字節(jié)碼[J];信息與電腦(理論版);2011年05期

6 周嵐;;基于Spring框架的IOC模式的設(shè)計和實現(xiàn)[J];合肥學(xué)院學(xué)報(自然科學(xué)版);2011年01期

7 馮新?lián)P;沈建京;;REST和RPC:兩種Web服務(wù)架構(gòu)風(fēng)格比較分析[J];小型微型計算機系統(tǒng);2010年07期

8 李昊,劉志鏡;線程池技術(shù)的研究[J];現(xiàn)代電子技術(shù);2004年03期

9 李儉兵;何登平;;SOAP技術(shù)及其應(yīng)用[J];計算機科學(xué);2003年04期



本文編號:2800974

資料下載
論文發(fā)表

本文鏈接:http://www.sikaile.net/kejilunwen/ruanjiangongchenglunwen/2800974.html


Copyright(c)文論論文網(wǎng)All Rights Reserved | 網(wǎng)站地圖 |

版權(quán)申明:資料由用戶e7d0e***提供,本站僅收錄摘要或目錄,作者需要刪除請E-mail郵箱bigeng88@qq.com