一種分布式調(diào)用框架、設(shè)備及其數(shù)據(jù)傳輸方法
【專利摘要】本發(fā)明公開了一種數(shù)據(jù)傳輸方法,包括:將請求對象序列化為二進制格式的流;根據(jù)設(shè)定的容錯策略將所述二進制格式的流通過新的輸入輸出NIO協(xié)議發(fā)送至對應(yīng)的服務(wù)器;通過NIO協(xié)議接收來自服務(wù)器返回的二進制格式的流,并將所述二進制格式的流反序列化為響應(yīng)對象。本發(fā)明同時還公開了一種分布式調(diào)用框架及設(shè)備。采用本發(fā)明的技術(shù)方案,能夠在資源開銷小的同時,實現(xiàn)負載均衡。
【專利說明】一種分布式調(diào)用框架、設(shè)備及其數(shù)據(jù)傳輸方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及分布式技術(shù),尤其涉及一種分布式調(diào)用框架、設(shè)備及其數(shù)據(jù)傳輸方法。
【背景技術(shù)】
[0002] 隨著業(yè)務(wù)不斷的發(fā)展,軟件系統(tǒng)的功能不斷的增加,單一部署的方式已經(jīng)無法滿 足要求,而且考慮到系統(tǒng)各業(yè)務(wù)功能模塊的相對獨立性,需要把這些業(yè)務(wù)模塊進行分布部 署。
[0003] 現(xiàn)有的分布部署框架主要有兩種實現(xiàn)方式:一種是采用超文本傳送協(xié)議(Http, Hypertext transport protocol)加文本的傳輸方式,該傳輸方式的優(yōu)點是負載均衡很容 易實現(xiàn);缺點是傳輸?shù)臄?shù)據(jù)量大,導(dǎo)致服務(wù)器端的資源開銷大。另一種是阻塞式輸入輸出 (BIO, Block Input Output)協(xié)議加二進制流的傳輸方式,該傳輸方式的優(yōu)點是二進制協(xié)議 開銷少;缺點是負載均衡實現(xiàn)復(fù)雜。
【發(fā)明內(nèi)容】
[0004] 有鑒于此,本發(fā)明的主要目的在于提供一種分布式調(diào)用框架、設(shè)備及其數(shù)據(jù)傳輸 方法,能夠在資源開銷小的同時,實現(xiàn)負載均衡。
[0005] 為達到上述目的,本發(fā)明的技術(shù)方案是這樣實現(xiàn)的:
[0006] 本發(fā)明提供了一種數(shù)據(jù)傳輸方法,該方法包括:
[0007] 將請求對象序列化為二進制格式的流;
[0008] 基于新的輸入輸出ΝΙ0協(xié)議對所述二進制格式的流進行封裝,并發(fā)送至對應(yīng)的服 務(wù)器;以及,接收服務(wù)器發(fā)送的基于ΝΙ0協(xié)議封裝的二進制格式的流,解封裝所述二進制格 式的流并將所述二進制格式的流反序列化為響應(yīng)對象。
[0009] 上述方案中,基于ΝΙ0協(xié)議對所述二進制格式的流進行封裝后,該方法包括:
[0010] 根據(jù)設(shè)定的容錯策略將ΝΙ0協(xié)議封裝后的所述二進制格式的流發(fā)送至對應(yīng)的服 務(wù)器。
[0011] 上述方案中,所述根據(jù)設(shè)定的容錯策略將ΝΙ0協(xié)議封裝后的所述二進制格式的流 發(fā)送至對應(yīng)的服務(wù)器包括:
[0012] 根據(jù)路由信息和服務(wù)器的狀態(tài)信息確定有效的服務(wù)器;
[0013] 確定所述有效的服務(wù)器的優(yōu)先級,將ΝΙ0協(xié)議封裝后的所述二進制格式的流發(fā)送 至優(yōu)先級最高的服務(wù)器。
[0014] 上述方案中,所述根據(jù)路由信息和服務(wù)器的狀態(tài)信息確定有效的服務(wù)器包括:
[0015] 對服務(wù)器進行心跳檢查,獲取服務(wù)器的在線情況,將當前在線的服務(wù)器確定為有 效的服務(wù)器。
[0016] 上述方案中,所述確定所述有效的服務(wù)器的優(yōu)先級包括:
[0017] 將所述有效的服務(wù)器劃分為主服務(wù)器和備服務(wù)器,主服務(wù)器的優(yōu)先級高于備服務(wù) 器的優(yōu)先級。
[0018] 本發(fā)明還提供了一種數(shù)據(jù)傳輸方法,該方法包括:
[0019] 接收客戶端發(fā)送的基于ΝΙ0協(xié)議封裝的二進制格式的流,解封裝所述二進制格式 的流并將所述二進制格式的流反序列化為請求對象;
[0020] 調(diào)用服務(wù)處理類對所述請求對象進行相應(yīng)處理,并得到所述請求對象對應(yīng)的響應(yīng) 對象;
[0021] 將所述響應(yīng)對象序列化為二進制格式的流,基于ΝΙ0協(xié)議對所述二進制格式的流 進行封裝,并發(fā)送至對應(yīng)的客戶端。
[0022] 本發(fā)明還提供了一種客戶端,該客戶端包括:序列化單元、發(fā)送單元、接收單元以 及反序列化單元;其中,
[0023] 所述序列化單元,用于將請求對象序列化為二進制格式的流;
[0024] 所述發(fā)送單元,用于基于ΝΙ0協(xié)議對所述二進制格式的流進行封裝,并發(fā)送至對 應(yīng)的服務(wù)器;
[0025] 所述接收單元,用于接收服務(wù)器發(fā)送的基于ΝΙ0協(xié)議封裝的二進制格式的流;
[0026] 所述反序列化單元,用于解封裝所述二進制格式的流并將所述二進制格式的流反 序列化為響應(yīng)對象。
[0027] 上述方案中,所述發(fā)送單元包括:容錯子單元和發(fā)送子單元;其中,
[0028] 所述容錯子單元,用于設(shè)定容錯策略;
[0029] 所述發(fā)送子單元,用于根據(jù)設(shè)定的容錯策略將ΝΙ0協(xié)議封裝后的所述二進制格式 的流發(fā)送至對應(yīng)的服務(wù)器。
[0030] 上述方案中,所述發(fā)送單元還包括:第一確定子單元、第二確定子單元;其中,
[0031] 所述第一確定子單元,用于根據(jù)路由信息和服務(wù)器的狀態(tài)信息確定有效的服務(wù) 器;
[0032] 所述第二確定子單元,用于確定所述有效的服務(wù)器的優(yōu)先級;
[0033] 相應(yīng)的,所述發(fā)送子單元,還用于將ΝΙ0協(xié)議封裝后的所述二進制格式的流發(fā)送 至優(yōu)先級最高的服務(wù)器。
[0034] 上述方案中,所述發(fā)送單元還包括:心跳檢查子單元;
[0035] 所述心跳檢查子單元,用于對服務(wù)器進行心跳檢查,獲取服務(wù)器的在線情況;
[0036] 相應(yīng)的,所述第一確定子單元,還用于將當前在線的服務(wù)器確定為有效的服務(wù)器。
[0037] 上述方案中,所述發(fā)送單元還包括:優(yōu)先級子單元;
[0038] 所述優(yōu)先級子單元,用于將所述有效的服務(wù)器劃分為主服務(wù)器和備服務(wù)器,主服 務(wù)器的優(yōu)先級高于備服務(wù)器的優(yōu)先級。
[0039] 本發(fā)明還提供了一種服務(wù)器,該服務(wù)器包括:接收單元、反序列化單元、調(diào)用單元、 序列化單元以及發(fā)送單元;其中,
[0040] 所述接收單元,用于接收客戶端發(fā)送的基于ΝΙ0協(xié)議封裝的二進制格式的流;
[0041] 所述反序列化單元,用于解封裝所述二進制格式的流并將所述二進制格式的流反 序列化為請求對象;
[0042] 所述調(diào)用單元,用于調(diào)用服務(wù)處理類對所述請求對象進行相應(yīng)處理,并得到所述 請求對象對應(yīng)的響應(yīng)對象;
[0043] 所述序列化單元,用于將所述響應(yīng)對象序列化為二進制格式的流;
[0044] 所述發(fā)送單元,用于基于NI0協(xié)議對所述二進制格式的流進行封裝,并發(fā)送至對 應(yīng)的客戶端。
[0045] 本發(fā)明還提供了一種分布式調(diào)用框架,該分布式調(diào)用框架包括上面所述的任意一 種客戶端和上面所述的任意一種服務(wù)器。
[0046] 本發(fā)明提供的分布式調(diào)用框架、設(shè)備及其數(shù)據(jù)傳輸方法,將將請求對象序列化為 二進制格式的流;基于新的輸入輸出ΝΙ0協(xié)議對所述二進制格式的流進行封裝,并發(fā)送至 對應(yīng)的服務(wù)器;以及,接收服務(wù)器發(fā)送的基于ΝΙ0協(xié)議封裝的二進制格式的流,解封裝所述 二進制格式的流并將所述二進制格式的流反序列化為響應(yīng)對象。如此,可以保證數(shù)據(jù)傳輸 的穩(wěn)定性以及實現(xiàn)負載均衡。
【專利附圖】
【附圖說明】
[0047] 圖1為本發(fā)明數(shù)據(jù)傳輸方法一實現(xiàn)流程示意圖;
[0048] 圖2為本發(fā)明數(shù)據(jù)傳輸方法二實現(xiàn)流程示意圖;
[0049] 圖3為本發(fā)明實施例一數(shù)據(jù)傳輸方法流程示意圖;
[0050] 圖4為本發(fā)明實施例二數(shù)據(jù)傳輸方法流程示意圖;
[0051] 圖5為本發(fā)明客戶端的組成結(jié)構(gòu)示意圖;
[0052] 圖6為本發(fā)明服務(wù)器的組成結(jié)構(gòu)示意圖;
[0053] 圖7為本發(fā)明分布式調(diào)用框架的組成結(jié)構(gòu)示意圖。
【具體實施方式】
[0054] 為了能夠更加詳盡地了解本發(fā)明的特點與技術(shù)內(nèi)容,下面結(jié)合附圖對本發(fā)明的實 現(xiàn)進行詳細闡述,所附附圖僅供參考說明之用,并非用來限定本發(fā)明。
[0055] 本發(fā)明實施例提供了一種由客戶端執(zhí)行的數(shù)據(jù)傳輸方法,如圖1所示,該方法包 括以下步驟:
[0056] 步驟101 :將請求對象序列化為二進制格式的流。
[0057] 步驟102 :基于新的輸入輸出(NIO,New Input Output)協(xié)議對所述二進制格式的 流進行封裝,并發(fā)送至對應(yīng)的服務(wù)器;以及,接收服務(wù)器發(fā)送的基于ΝΙ0協(xié)議封裝的二進制 格式的流,解封裝所述二進制格式的流并將所述二進制格式的流反序列化為響應(yīng)對象。
[0058] 基于ΝΙ0協(xié)議對所述二進制格式的流進行封裝后,該方法包括:
[0059] 根據(jù)設(shè)定的容錯策略將ΝΙ0協(xié)議封裝后的所述二進制格式的流發(fā)送至對應(yīng)的服 務(wù)器。
[0060] 所述根據(jù)設(shè)定的容錯策略將ΝΙ0協(xié)議封裝后的所述二進制格式的流發(fā)送至對應(yīng) 的服務(wù)器包括:
[0061] 根據(jù)路由信息和服務(wù)器的狀態(tài)信息確定有效的服務(wù)器;
[0062] 確定所述有效的服務(wù)器的優(yōu)先級,將ΝΙ0協(xié)議封裝后的所述二進制格式的流發(fā)送 至優(yōu)先級最高的服務(wù)器。
[0063] 所述根據(jù)路由信息和服務(wù)器的狀態(tài)信息確定有效的服務(wù)器包括:
[0064] 對服務(wù)器進行心跳檢查,獲取服務(wù)器的在線情況,將當前在線的服務(wù)器確定為有 效的服務(wù)器。
[0065] 所述確定所述有效的服務(wù)器的優(yōu)先級包括:
[0066] 將所述有效的服務(wù)器劃分為主服務(wù)器和備服務(wù)器,主服務(wù)器的優(yōu)先級高于備服務(wù) 器的優(yōu)先級。
[0067] 本發(fā)明實施例提供了一種由服務(wù)器執(zhí)行的數(shù)據(jù)傳輸方法,如圖2所示,該方法包 括以下步驟:
[0068] 步驟201 :接收客戶端發(fā)送的基于ΝΙ0協(xié)議封裝的二進制格式的流,解封裝所述二 進制格式的流并將所述二進制格式的流反序列化為請求對象。
[0069] 步驟202 :調(diào)用服務(wù)處理類對所述請求對象進行相應(yīng)處理,并得到所述請求對象 對應(yīng)的響應(yīng)對象。
[0070] 步驟203 :將所述響應(yīng)對象序列化為二進制格式的流,基于ΝΙ0協(xié)議對所述二進制 格式的流進行封裝,并發(fā)送至對應(yīng)的客戶端。
[0071] 針對圖1所示的數(shù)據(jù)傳輸方法,本發(fā)明還提供了具體實施例對所述數(shù)據(jù)傳輸方法 做進一步闡述。
[0072] 圖3為本發(fā)明實施例一數(shù)據(jù)傳輸方法示意圖,如圖3所示,該方法包括以下步驟:
[0073] 步驟 301 :通過二進制遠程調(diào)用控制(Binary-RPC,Binary-Remote Procedure Call)協(xié)議將請求對象序列化為二進制格式的流。
[0074] 這里,所述請求對象包括:請求的對象、請求的參數(shù)、請求的方法等;
[0075] 本步驟具體為:通過Binary-RPC協(xié)議將所述請求的對象、和/或請求的參數(shù)、和/ 或請求的方法等數(shù)據(jù)轉(zhuǎn)化為標準格式的二進制文件;
[0076] 將所述標準格式的二進制文件轉(zhuǎn)化為流;所述流是一種可以傳輸?shù)臄?shù)據(jù),例如,可 以在網(wǎng)絡(luò)上傳輸?shù)臄?shù)據(jù)流。
[0077] 優(yōu)選地,本步驟可以通過工具-黑森林(Hessian)來執(zhí)行;具體的,
[0078] Hessian 提供應(yīng)用程序編輯接口(API,Application Programming Interface)供 客戶端發(fā)起請求,通過其自定義的串行化機制將請求對象進行序列化,產(chǎn)生二進制流。
[0079] 步驟302 :根據(jù)路由信息和服務(wù)器的狀態(tài)確定有效的服務(wù)器。
[0080] 本步驟具體為:路由設(shè)備對服務(wù)器發(fā)進行心跳檢查,并獲取服務(wù)器的在線情況;
[0081] 獲取路由設(shè)備發(fā)送的所述服務(wù)器的在線情況,根據(jù)所述在線情況確定有效的服務(wù) 器。
[0082] 例如,路由設(shè)備對與其連接的服務(wù)器發(fā)送心跳檢查消息;當服務(wù)器正常與所述路 由設(shè)備通訊時,服務(wù)器會返回心跳檢查響應(yīng)消息給路由設(shè)備;路由設(shè)備接收到服務(wù)器返回 的心跳檢查響應(yīng)消息后,確定該服務(wù)器在線;當服務(wù)器與所述路由設(shè)備沒有通訊時,服務(wù)器 則不會返回心跳檢查響應(yīng)消息給路由設(shè)備;路由設(shè)備也不會接收到服務(wù)器返回的心跳檢查 響應(yīng)消息,則確定該服務(wù)器不在線。
[0083] 然后,客戶端獲取路由設(shè)備發(fā)送的所述服務(wù)器的在線情況,對于在線的服務(wù)器客 戶端認定為是有效的服務(wù)器;對于不在線的服務(wù)器客戶端認定為無效的服務(wù)器。
[0084] 步驟303 :對所述有效的服務(wù)器設(shè)定優(yōu)先順序,根據(jù)優(yōu)先順序?qū)⒒讦?協(xié)議封裝 的二進制格式的流發(fā)送至對應(yīng)的服務(wù)器。
[0085] 本步驟具體為:將所述有效的服務(wù)器劃分為主服務(wù)器和備服務(wù)器;將基于ΝΙ0協(xié) 議封裝的二進制格式的流發(fā)送至所述主服務(wù)器。
[0086] 本步驟的目的是將基于NI0協(xié)議封裝的二進制格式的流發(fā)送至優(yōu)選的服務(wù)器,例 如主服務(wù)器、或者最高等級的服務(wù)器;如果優(yōu)選的服務(wù)器無效(例如在運行過程中服務(wù)器 出現(xiàn)故障),則將基于ΝΙ0協(xié)議封裝的二進制格式的流發(fā)送至次優(yōu)選的服務(wù)器,例如備服務(wù) 器、或者次高等級的服務(wù)器。
[0087] 承上所述,本步驟還包括:當所述主服務(wù)器無效時,將所述基于ΝΙ0協(xié)議封裝的二 進制格式的流發(fā)送至所述備服務(wù)器;所述備服務(wù)器為備用的服務(wù)器;
[0088] 當所述最高等級的服務(wù)器無效時,將基于ΝΙ0協(xié)議封裝的二進制格式的流發(fā)送至 次高等級的服務(wù)器;所述次高等級的服務(wù)器的權(quán)重小于所述最高等級的服務(wù)器。
[0089] 如此,可以在服務(wù)器無效時,選擇備用的服務(wù)器對其進行替換,保證了通訊的正常 運行,這即為容錯策略。
[0090] 上述方案中,根據(jù)優(yōu)先順序?qū)⑺龌讦?協(xié)議封裝的二進制格式的流發(fā)送至對 應(yīng)的服務(wù)器是基于Http進行傳輸,通過Http傳輸易實現(xiàn)負載均衡,從而高效的傳輸數(shù)據(jù)。
[0091] 上述方案中,ΝΙ0協(xié)議可以通過多用途架構(gòu)網(wǎng)絡(luò)應(yīng)用(MINA,Multipurpose Infrastructure for Network Applications)來執(zhí)行;通過ΝΙ0協(xié)議進行二進制格式的流 的傳輸,可以節(jié)約更多的線程資源,進而可以接收建立更多的連接,處理更多的請求對象。
[0092] 步驟304 :接收來自服務(wù)器返回的基于ΝΙ0協(xié)議封裝的二進制格式的流,并將所述 二進制格式的流反序列化為響應(yīng)對象。
[0093] 這里,所述響應(yīng)對象對應(yīng)步驟301中的請求對象。
[0094] 本步驟具體為:客戶端通過Hessian提供的API來接收服務(wù)器返回的二進制格式 的流;根據(jù)Hessian私有的串行化機制來將進制格式的流進行反序列化,產(chǎn)生響應(yīng)對象。 [0095] 針對圖2所示的數(shù)據(jù)傳輸方法,本發(fā)明還提供了具體實施例對所述數(shù)據(jù)傳輸方法 做進一步闡述。
[0096] 圖4為本發(fā)明實施例二數(shù)據(jù)傳輸方法示意圖,如圖4所示,該方法包括以下步驟:
[0097] 步驟401 :接收來自客戶端發(fā)送的基于ΝΙ0協(xié)議封裝的二進制格式的流,并將所述 二進制格式的流通過Binary-RPC協(xié)議反序列化為請求對象。
[0098] 這里,所述請求對象包括:請求的對象、請求的參數(shù)、請求的方法等;
[0099] 本步驟具體為:服務(wù)器監(jiān)聽端口是否有二進制格式的流發(fā)送過來;如果有,通過 Hessian提供的API來接收客戶端發(fā)送的二進制格式的流;根據(jù)Hessian私有的串行化機 制來將進制格式的流進行反序列化,產(chǎn)生響應(yīng)對象。
[0100] 步驟402 :調(diào)用服務(wù)處理類對所述請求對象進行相應(yīng)處理,得到響應(yīng)對象
[0101] 這里,服務(wù)處理類設(shè)定并存儲于服務(wù)器側(cè),服務(wù)器根據(jù)請求對象調(diào)用與其對應(yīng)的 處理類;根據(jù)所調(diào)用的處理類對請求對象進行處理,并得到處理之后的響應(yīng)對象。
[0102] 步驟403 :將所述響應(yīng)對象序列化為二進制格式的流,并將基于ΝΙ0協(xié)議封裝的二 進制格式的流發(fā)送對應(yīng)的至客戶端。
[0103] 本步驟具體為:通過Binary-RPC協(xié)議將所述響應(yīng)對象序列化為標準格式的二進 制文件;通過MINA提供的ΝΙ0協(xié)議對所述二進制格式的流進行封裝并發(fā)送至對應(yīng)的客戶 端。
[0104] 如圖5所示,本發(fā)明實施例還提供了一種客戶端,該客戶端包括:序列化單元51、 發(fā)送單元52、接收單元53以及反序列化單元54 ;其中,
[0105] 所述序列化單元51,用于將請求對象序列化為二進制格式的流;
[0106] 所述發(fā)送單元52,用于基于ΝΙ0協(xié)議對所述二進制格式的流進行封裝,并發(fā)送至 對應(yīng)的服務(wù)器;
[0107] 所述接收單元53,用于接收服務(wù)器發(fā)送的基于ΝΙ0協(xié)議封裝的二進制格式的流;
[0108] 所述反序列化單元54,用于解封裝所述二進制格式的流并將所述二進制格式的流 反序列化為響應(yīng)對象。
[0109] 優(yōu)選地,所述發(fā)送單元52包括:容錯子單元521以及發(fā)送子單元522;其中,
[0110] 所述容錯子單元521,用于設(shè)定容錯策略;
[0111] 所述發(fā)送子單元522,用于根據(jù)設(shè)定的容錯策略將ΝΙ0協(xié)議封裝后的所述二進制 格式的流發(fā)送至對應(yīng)的服務(wù)器。
[0112] 優(yōu)選地,所述發(fā)送單元52還包括:第一確定子單元523、第二確定子單元524 ;其 中,
[0113] 所述第一確定子單元523,用于根據(jù)路由信息和服務(wù)器的狀態(tài)信息確定有效的服 務(wù)器;
[0114] 所述第二確定子單元524,用于確定所述有效的服務(wù)器的優(yōu)先級;
[0115] 相應(yīng)的,所述發(fā)送子單元522,還用于將ΝΙ0協(xié)議封裝后的所述二進制格式的流發(fā) 送至優(yōu)先級最高的服務(wù)器。
[0116] 優(yōu)選地,所述發(fā)送單元52還包括:心跳檢查子單元525 ;
[0117] 所述心跳檢查子單元525,用于對服務(wù)器進行心跳檢查,獲取服務(wù)器的在線情況;
[0118] 相應(yīng)的,所述第一確定子單元523,還用于將當前在線的服務(wù)器確定為有效的服務(wù) 器。
[0119] 選地,所述發(fā)送單元52還包括:優(yōu)先級子單元526 ;
[0120] 所述優(yōu)先級子單元526,用于將所述有效的服務(wù)器劃分為主服務(wù)器和備服務(wù)器,主 服務(wù)器的優(yōu)先級高于備服務(wù)器的優(yōu)先級。
[0121] 如圖6所示,本發(fā)明實施例還提供了一種服務(wù)器,該服務(wù)器包括:接收單元61、反 序列化單元62、調(diào)用單元63、序列化單元64以及發(fā)送單元65 ;其中,
[0122] 所述接收單元61,用于接收客戶端發(fā)送的基于ΝΙ0協(xié)議封裝的二進制格式的流;
[0123] 所述反序列化單元62,用于解封裝所述二進制格式的流并將所述二進制格式的流 反序列化為請求對象;
[0124] 所述調(diào)用單元63,用于調(diào)用服務(wù)處理類對所述請求對象進行相應(yīng)處理,并得到所 述請求對象對應(yīng)的響應(yīng)對象;
[0125] 所述序列化單元64,用于將所述響應(yīng)對象序列化為二進制格式的流;
[0126] 所述發(fā)送單元65,用于基于ΝΙ0協(xié)議對所述二進制格式的流進行封裝,并發(fā)送至 對應(yīng)的客戶端。
[0127] 本發(fā)明實施例還提供了一種分布式調(diào)用框架,如圖7所示,所述分布式調(diào)用框架 包括圖5所示的客戶端以及圖6所示的服務(wù)器。
[0128] 以上所述,僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護范圍。
【權(quán)利要求】
1. 一種數(shù)據(jù)傳輸方法,其特征在于,該方法包括: 將請求對象序列化為二進制格式的流; 基于新的輸入輸出NIO協(xié)議對所述二進制格式的流進行封裝,并發(fā)送至對應(yīng)的服務(wù) 器;以及,接收服務(wù)器發(fā)送的基于NIO協(xié)議封裝的二進制格式的流,解封裝所述二進制格式 的流并將所述二進制格式的流反序列化為響應(yīng)對象。
2. 根據(jù)權(quán)利要求1所述的數(shù)據(jù)傳輸方法,其特征在于,基于NIO協(xié)議對所述二進制格式 的流進行封裝后,該方法包括: 根據(jù)設(shè)定的容錯策略將NIO協(xié)議封裝后的所述二進制格式的流發(fā)送至對應(yīng)的服務(wù)器。
3. 根據(jù)權(quán)利要求2所述的數(shù)據(jù)傳輸方法,其特征在于,所述根據(jù)設(shè)定的容錯策略將NIO 協(xié)議封裝后的所述二進制格式的流發(fā)送至對應(yīng)的服務(wù)器包括: 根據(jù)路由信息和服務(wù)器的狀態(tài)信息確定有效的服務(wù)器; 確定所述有效的服務(wù)器的優(yōu)先級,將NIO協(xié)議封裝后的所述二進制格式的流發(fā)送至優(yōu) 先級最高的服務(wù)器。
4. 根據(jù)權(quán)利要求3所述的數(shù)據(jù)傳輸方法,其特征在于,所述根據(jù)路由信息和服務(wù)器的 狀態(tài)信息確定有效的服務(wù)器包括: 對服務(wù)器進行心跳檢查,獲取服務(wù)器的在線情況,將當前在線的服務(wù)器確定為有效的 服務(wù)器。
5. 根據(jù)權(quán)利要求3所述的數(shù)據(jù)傳輸方法,其特征在于,所述確定所述有效的服務(wù)器的 優(yōu)先級包括: 將所述有效的服務(wù)器劃分為主服務(wù)器和備服務(wù)器,主服務(wù)器的優(yōu)先級高于備服務(wù)器的 優(yōu)先級。
6. -種數(shù)據(jù)傳輸方法,其特征在于,該方法包括: 接收客戶端發(fā)送的基于NIO協(xié)議封裝的二進制格式的流,解封裝所述二進制格式的流 并將所述二進制格式的流反序列化為請求對象; 調(diào)用服務(wù)處理類對所述請求對象進行相應(yīng)處理,并得到所述請求對象對應(yīng)的響應(yīng)對 象; 將所述響應(yīng)對象序列化為二進制格式的流,基于NIO協(xié)議對所述二進制格式的流進行 封裝,并發(fā)送至對應(yīng)的客戶端。
7. -種客戶端,其特征在于,該客戶端包括:序列化單元、發(fā)送單元、接收單元以及反 序列化單元;其中, 所述序列化單元,用于將請求對象序列化為二進制格式的流; 所述發(fā)送單元,用于基于NIO協(xié)議對所述二進制格式的流進行封裝,并發(fā)送至對應(yīng)的 服務(wù)器; 所述接收單元,用于接收服務(wù)器發(fā)送的基于NIO協(xié)議封裝的二進制格式的流; 所述反序列化單元,用于解封裝所述二進制格式的流并將所述二進制格式的流反序列 化為響應(yīng)對象。
8. 根據(jù)權(quán)利要求7所述的客戶端,其特征在于,所述發(fā)送單元包括:容錯子單元和發(fā)送 子單元;其中, 所述容錯子單元,用于設(shè)定容錯策略; 所述發(fā)送子單元,用于根據(jù)設(shè)定的容錯策略將NIO協(xié)議封裝后的所述二進制格式的流 發(fā)送至對應(yīng)的服務(wù)器。
9. 根據(jù)權(quán)利要求8所述的客戶端,其特征在于,所述發(fā)送單元還包括:第一確定子單 元、第二確定子單元;其中, 所述第一確定子單元,用于根據(jù)路由信息和服務(wù)器的狀態(tài)信息確定有效的服務(wù)器; 所述第二確定子單元,用于確定所述有效的服務(wù)器的優(yōu)先級; 相應(yīng)的,所述發(fā)送子單元,還用于將NI0協(xié)議封裝后的所述二進制格式的流發(fā)送至優(yōu) 先級最高的服務(wù)器。
10. 根據(jù)權(quán)利要求9所述的客戶端,其特征在于,所述發(fā)送單元還包括:心跳檢查子單 元; 所述心跳檢查子單元,用于對服務(wù)器進行心跳檢查,獲取服務(wù)器的在線情況; 相應(yīng)的,所述第一確定子單元,還用于將當前在線的服務(wù)器確定為有效的服務(wù)器。
11. 根據(jù)權(quán)利要求9所述的客戶端,其特征在于,所述發(fā)送單元還包括:優(yōu)先級子單 元; 所述優(yōu)先級子單元,用于將所述有效的服務(wù)器劃分為主服務(wù)器和備服務(wù)器,主服務(wù)器 的優(yōu)先級高于備服務(wù)器的優(yōu)先級。
12. -種服務(wù)器,其特征在于,該服務(wù)器包括:接收單元、反序列化單元、調(diào)用單元、序 列化單元以及發(fā)送單元;其中, 所述接收單元,用于接收客戶端發(fā)送的基于NI0協(xié)議封裝的二進制格式的流; 所述反序列化單元,用于解封裝所述二進制格式的流并將所述二進制格式的流反序列 化為請求對象; 所述調(diào)用單元,用于調(diào)用服務(wù)處理類對所述請求對象進行相應(yīng)處理,并得到所述請求 對象對應(yīng)的響應(yīng)對象; 所述序列化單元,用于將所述響應(yīng)對象序列化為二進制格式的流; 所述發(fā)送單元,用于基于NI0協(xié)議對所述二進制格式的流進行封裝,并發(fā)送至對應(yīng)的 客戶端。
13. -種分布式調(diào)用框架,其特征在于,該分布式調(diào)用框架包括權(quán)利要求7至11任一項 所述的客戶端和權(quán)利要求12所述的服務(wù)器。
【文檔編號】H04L29/06GK104104663SQ201310121477
【公開日】2014年10月15日 申請日期:2013年4月9日 優(yōu)先權(quán)日:2013年4月9日
【發(fā)明者】孫為, 田睿, 張弛, 吳振宇 申請人:深圳中興網(wǎng)信科技有限公司