新四季網

一種基於Redis的RPC通信方法與流程

2023-04-27 17:10:26 2


本發明涉及服務端分布式架構領域,尤其涉及一種基於redis的rpc通信方法。



背景技術:

目前,集群伺服器中,兩個伺服器之間需要進行遠程調用時,一般採用如下方法:給每兩個可能發生rpc通信的服務建立網絡連接,然後通過tcp或udp協議傳遞需要調用的方法名和參數。

然而,這種網狀連接結構在大規模集群網絡中會呈現如下弊端,其一,它增加了服務端架構的複雜性,使得服務端的調試和維護難度很高;其二,由於網絡不穩定,出現調用失敗的可能性較高。



技術實現要素:

本發明的目的在於提供一種基於redis的rpc通信方法,從而解決現有技術中存在的前述問題。

為了實現上述目的,本發明採用的技術方案如下:

一種基於redis的rpc通信方法,包括如下步驟:

s1,建立調用端伺服器與redis伺服器之間的連接,獲取唯一的id;

s2,所述調用端伺服器根據所述唯一的id,訂閱對應頻道;

s3,被調用端伺服器向所述redis伺服器發送rpc數據;

s4,所述redis伺服器將接收到的rpc數據通過s2中訂閱的所述對應頻道轉發給所述調用端伺服器;

s5,所述調用端伺服器接收到redis轉發的rpc數據後對其進行解析協議,並調用對應的方法,實現遠程調用。

優選地,s2中,所述訂閱對應頻道,具體為,通過redis服務的subscribe命令訂閱對應頻道。

優選地,s3具體為:被調用端伺服器通過redis的publish命令向所述redis伺服器發送rpc數據。

優選地,s3中,所述rpc數據為二進位的字符串數據,包含調用方法名和參數內容。

本發明的有益效果是:本發明實施例提供的一種基於redis的rpc通信方法,基於redis的publish命令和subscribe命令,將被調用端伺服器的rpc數據通過調用端伺服器的唯一的訂閱頻道轉發至調用端伺服器,解析後再調用對應的方法,實現遠程調用,由於調用端伺服器和被調用端伺服器之間沒有直接建立連接關係,而是通過redis服務間接的建立連接,所以,具有很高的解耦性,能夠讓服務端集群結構變得簡單和清晰,同時避免了為每個服務端進程編寫rpc連接,提高了服務端程序的開發效率。

附圖說明

圖1是本發明實施例提供的基於redis的rpc通信方法的流程示意圖;

圖2是調用端伺服器的工作流程示意圖。

具體實施方式

為了使本發明的目的、技術方案及優點更加清楚明白,以下結合附圖,對本發明進行進一步詳細說明。應當理解,此處所描述的具體實施方式僅僅用以解釋本發明,並不用於限定本發明。

如圖1-2所示,本發明實施例提供了一種基於redis的rpc通信方法,包括如下步驟:

s1,建立調用端伺服器與redis伺服器之間的連接,獲取唯一的id;

s2,所述調用端伺服器根據所述唯一的id,訂閱對應頻道;

s3,被調用端伺服器向所述redis伺服器發送rpc數據;

s4,所述redis伺服器將接收到的rpc數據通過s2中訂閱的所述對應頻道轉發給所述調用端伺服器;

s5,所述調用端伺服器接收到redis轉發的rpc數據後對其進行解析協議,並調用對應的方法,實現遠程調用。

其中,s2中,所述訂閱對應頻道,具體可以為,通過redis服務的subscribe命令訂閱對應頻道。

s3具體可以為:被調用端伺服器通過redis的publish命令向所述redis伺服器發送rpc數據。

s3中,所述rpc數據為二進位的字符串數據,包含調用方法名和參數內容。

其中,rpc(remoteprocedurecallprotocol)為遠程過程調用協議。

本發明提供的上述方法的原理是:給每個服務命名,通過redis的subscribe命令訂閱自身對應的頻道,當需要遠程調用時,通過reids的publish命令給對應進程的頻道發送數據。當服務端進程收到reids轉發的數據後,解析這些數據,並使用解析出來的方法名和參數去執行對應的方法。

在具體實施過程中,上述方法可分為服務初始化階段、rpc調用、rpc處理三個階段。其中服務初始化階段為服務端程序開啟時,建立redis連接,並通過redis的subscribe命令訂閱該服務對應的頻道。rpc調用階段為服務端程序向另一個服務端程序發起rpc調用,主要是通過redis的publish命令向redis發送rpc數據,通過redis將該數據轉發給對應服務。rpc處理階段為接受rpc調用的服務處理rpc數據,並做相應處理的過程。

上述三個階段的具體實現方式為:

1、訂閱頻道

訂閱頻道階段為程序連接redis並發出subscribe命令的過程,具體可以分為3個步驟。

(1)根據配置文件或啟動參數,確定每個服務的唯一id;

(2)服務程序與redis建立連接;

(3)服務程序通過subscribe命令,訂閱自身id的頻道。

2、發送rpc數據

需要調用rpc協議的服務通過redis的publish命令給redis發送rpc數據,rpc數據為二進位的字符串數據,包含了調用方法名、參數等內容。一種可能的數據格式如下表所示:

被調用端將以上協議格式(或其他類似協議)的二進位數據,通過redis的publish命令發送到調用端id所對應的頻道。redis將會把數據轉發到訂閱對應頻道的服務端程序上,即調用端上。

3、rpc處理

調用端收到redis轉發的數據後,先解析協議,將方法名和各個參數解析出來,然後調用對應的方法,實現遠程調用。如若調用端需要回應被調用端,調用端亦可通過publish命名向被調用端推送數據。

上述方法中,伺服器集群包含各個服務端程序,以及一個redis服務(或redis集群),服務端程序之間並不相互連接,通過redis轉發消息,實現rpc調用。

通過採用本發明公開的上述技術方案,得到了如下有益的效果:本發明實施例提供的一種基於redis的rpc通信方法,基於redis的publish命令和subscribe命令,將被調用端伺服器的rpc數據通過調用端伺服器的唯一的訂閱頻道轉發至調用端伺服器,解析後再調用對應的方法,實現遠程調用,由於調用端伺服器和被調用端伺服器之間沒有直接建立連接關係,而是通過redis服務間接的建立連接,所以,具有很高的解耦性,能夠讓服務端集群結構變得簡單和清晰,同時避免了為每個服務端進程編寫rpc連接,提高了服務端程序的開發效率。

本說明書中的各個實施例均採用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似的部分互相參見即可。

本領域人員應該理解的是,上述實施例提供的方法步驟的時序可根據實際情況進行適應性調整,也可根據實際情況並發進行。

上述實施例涉及的方法中的全部或部分步驟可以通過程序來指令相關的硬體來完成,所述的程序可以存儲於計算機設備可讀取的存儲介質中,用於執行上述各實施例方法所述的全部或部分步驟。所述計算機設備,例如:個人計算機、伺服器、網絡設備、智能移動終端、智能家居設備、穿戴式智能設備、車載智能設備等;所述的存儲介質,例如:ram、rom、磁碟、磁帶、光碟、快閃記憶體、u盤、移動硬碟、存儲卡、記憶棒、網絡伺服器存儲、網絡雲存儲等。

最後,還需要說明的是,在本文中,諸如第一和第二等之類的關係術語僅僅用來將一個實體或者操作與另一個實體或操作區分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關係或者順序。而且,術語「包括」、「包含」或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、商品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、商品或者設備所固有的要素。在沒有更多限制的情況下,由語句「包括一個……」限定的要素,並不排除在包括所述要素的過程、方法、商品或者設備中還存在另外的相同要素。

以上所述僅是本發明的優選實施方式,應當指出,對於本技術領域的普通技術人員來說,在不脫離本發明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應視本發明的保護範圍。

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀