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

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

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

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

IO模型


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

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


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

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


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

【參考文獻(xiàn)】

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

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

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

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

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

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

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

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

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

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



本文編號(hào):2800974

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

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


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

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