TWI717457B - 環境隔離方法及設備 - Google Patents
環境隔離方法及設備 Download PDFInfo
- Publication number
- TWI717457B TWI717457B TW106102699A TW106102699A TWI717457B TW I717457 B TWI717457 B TW I717457B TW 106102699 A TW106102699 A TW 106102699A TW 106102699 A TW106102699 A TW 106102699A TW I717457 B TWI717457 B TW I717457B
- Authority
- TW
- Taiwan
- Prior art keywords
- address
- rpc
- routing
- isolation
- rpc client
- Prior art date
Links
Images
Landscapes
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本發明公開了一種環境隔離方法。預先令RPC客戶端中的路由地址池按照預設的週期自動刷新預置的全量地址,RPC客戶端接收環境隔離設備發送的環境隔離指示後停止自動刷新路由地址池,並將路由地址池中目前的地址替換為合併地址,後續當RPC客戶端接收到用戶發送的服務調用請求時,根據路由地址池中的合併地址產生有效的目標地址,將服務調用請求發送至與目標地址對應的RPC服務端,並將RPC服務端返回的業務處理結果回饋至用戶。從而在不對硬體進行修改的前提下,解決了在RPC調用過程中進行環境隔離所帶來的複雜度高、無法完全隔離等問題,保證了環境隔離的安全性以及穩定性。
Description
本發明關於通信技術領域,特別關於一種環境隔離方法。本發明同時還關於一種RPC客戶端以及環境隔離設備。
RPC(Remote Procedure Call,遠端程序呼叫)是一個分散式運算的客戶端-伺服器(Client/Server)的協議,由於通過RPC能夠從遠端電腦程式上請求服務的同時不需要瞭解底層網路技術,因此RPC既簡單而又廣受歡迎。遠端程序呼叫總是由客戶端對伺服器發出一個執行若干過程請求,使用客戶端提供的參數,服務端將執行結果返回給客戶端。目前大部分的雲計算平臺的公有雲計算產品均提供了RPC的服務功能,方便各類語言開發者快速使用。
如圖1所示,為RPC原理示意圖。(RPC)客戶端與(RPC)伺服器利用各自的傳輸編碼通過協定在各個頻段相互連接,其中客戶端具有介面模組,伺服器則具有用於運行的實施模組。通過RPC可以充分利用非共用記憶體 的多處理器環境(例如通過局域網連接得多台伺服器),這樣可以簡便地將應用分佈在多台伺服器上,應用程式就像運行在一個多處理器的電腦上一樣。技術人員可以方便的實現過程代碼共用,提高系統資源的利用率,也可以將以大量資料處理的操作分散到處理能力較強的集群中運行,從而減輕單機負擔,同時也能更好的做服務化處理。
在應用RPC技術的過程中,RPC框架中的Client需要調用Server,請求路由到哪台Server有不同的策略和實現方式。而基於請求路由技術如何實現環境隔離也是現有的RPC應用過程中所必不可少的一項內容。
環境隔離就是指通過一定的手段(這裡指請求路由技術),完成對測試環境、生產環境的分散式調用服務、資料的區分,防止不同環境間分散式調用服務、資料的相互干擾和使用。現有技術一般通過修改請求來源標誌位元(IP)將請求隔離到指定機器上,或者是通過調整負載均衡的權重配置將請求隔離到指定機器或者集群中(可能存在隔離不乾淨的問題),亦或是通過配置混合路由的分組值將機器隔離到指定分組當中(要在服務端設置服務分組,區別於其他分組)。
如圖2所示,為現有技術中基於請求路由的隔離架構示意圖。預先為生產環境中的不同APP對應配置了統一接入1、配置服務1以及通知等模組,而隔離環境中的APP則對應配置了與生產環境不同的統一接入2以及配置服務2等模組。然而無論是生產環境還是隔離環境,均通 過統一的管理平臺進行管理。由於基於請求路由的環境隔離需要修改客戶端請求標誌位元(IP)或者修改RPC路由設定檔,勢必造成需要發佈和重啟應用,操作成本很高,不能動態完成隔離,而且服務端也需要配置單獨的分組以支援隔離操作,而這些操作十分複雜,極易出錯,配置不對可能造成隔離不乾淨等問題,由於整體環境的波動等不確定因素,極易導致服務請求調用失敗,進而影響安全性和穩定性,所以現有技術中若需要通過環境隔離進行測試對比的話,一般需要部署一套相同應用,設置不同的路由配置和分組。而單獨部署的環境在真實性上有損失,同時也加重了操作人員運作負擔。
在實現本發明的過程中,發明人發現現有的環境隔離方案存在著以下缺點:
(1)對應用侵入大
常規的隔離技術不是需要對原應用代碼、分組、路由規則配置進行修改,就是需要對服務提供方的服務進行分組配置。對應用的侵入很大,而且配置複雜,極易出錯,修改的版本要單獨打分支,以後的維護成本也很大。
(2)隔離後應用穩定性存在風險
隔離後鏈路一旦出現穩定性問題,將直接導致上層依賴系統服務不可用的情況。常規的隔離技術並沒有鏈路可用性檢查功能,也並沒有考慮隔離後造成服務請求失敗的容災策略,由於其機制的原因,也無法快速進行容災。
(3)部署成本高
通過硬體路由實施隔離需要添加額外的設備,落地部署成本極高,使用上需要專業人員操作,開發和測試人員無法按需操作,更改隔離規則操作複雜,易出錯,一般使用不需要過多的附加功能,使用上存在浪費。
(4)隔離後的環境擬真性差
常規的基於請求路由的隔離需要修改設定檔或者單獨部署一套應用,因此在真實性上和原有生產環境有區別,在進行測試或者其他對比驗證的時候環境上存在一定差異,而隔離的目的是定向引流,並不是改變環境,同時存在後續維護成本高的缺點,因為生產環境的統一配置無法直接應用於隔離出的β環境。
(5)操作複雜,即時性差。常規的基於請求路由的隔離方案,由於對應用和配置的修改,勢必造成重新部署或者重啟應用,整體操作鏈路長,時間長,無法快速即時生效,要準備的配置多,維護配置可用性成本高。
由此可見,如何在保證安全與穩定的前提下實現環境隔離,並同時降低隔離的成本以及隔離操作的複雜度,成為本領域技術人員亟待解決的技術問題。
本發明公開了一種環境隔離方法,用以在提升環境隔離的即時性、安全性以及穩定性的前提下,儘量降低環境隔離的人工及硬體成本。該方法應用於RPC客戶端,預設與該RPC客戶端相連的環境隔離設備,該RPC客戶端 中的路由地址池按照預設的週期自動刷新預置的全量地址,該方法還包括:該RPC客戶端接收該環境隔離設備發送的環境隔離指示;該RPC客戶端停止自動刷新該路由地址池,並將該路由地址池中目前的地址替換為合併地址,該合併地址為該RPC客戶端根據該路由地址池中目前的地址以及預設的手動地址清單中的地址合併產生;當該RPC客戶端接收到用戶發送的服務調用請求時,根據該路由地址池中的合併地址產生有效的目標地址;該RPC客戶端將該服務調用請求發送至與該目標地址對應的RPC服務端,並將該RPC服務端返回的業務處理結果回饋至該用戶。
優選地,該手動地址清單由參與環境隔離的RPC客戶端以及RPC服務端的地址組成,該RPC客戶端將該路由地址池中目前的地址替換為合併地址,具體為:從該手動地址清單中篩選可用於地址合併的第一子地址;將停止自動刷新後的該路由地址池中的地址作為第二子地址;根據預設的地址合併演算法,將該第一子地址以及該第二子地址合併為該合併地址;將該路由地址池中目前的地址刪除,並將該合併地址 添加至該路由地址池中。
優選地,該RPC客戶端根據該路由地址池中的合併地址產生有效的目標地址,具體為:查詢預設的路由規則,以及在該路由地址池中查詢可用的設備地址;根據該路由規則對查詢到的設備地址進行篩選;若存在符合該路由規則的設備地址,將該設備地址作為該目標地址;若不存在符合該路由規則的設備地址,向該用戶返回服用調用失敗回應。
優選地,在該RPC客戶端將該路由地址池中目前的地址替換為合併地址之後,還包括:向該環境隔離設備返回環境隔離成功回應;當接收到該環境隔離設備發送的隔離狀態檢查指示時,查詢自身與各個下游RPC服務端之間的介面是否正常,並將查詢結果發送至該環境隔離設備,以使該環境隔離設備向該用戶回饋該查詢結果。
優選地,在該RPC客戶端將該路由地址池中目前的地址替換為合併地址之後,還包括:若接收到該環境隔離設備發送的環境隔離取消指示,將該路由地址池中的合併地址刷新為該全量地址,並使路由地址池按照預設的週期自動刷新預置的該全量地址。
相應地,本發明還提出了一種環境隔離方法,該方法應用於環境隔離設備,該環境隔離設備與該RPC客戶端 相連,該方法包括:根據用戶發送的環境隔離請求中所攜帶的地址資訊確定需要進行環境隔離的RPC客戶端,該RPC客戶端中的路由地址池按照預設的週期自動刷新預置的全量地址;向該RPC客戶端發送環境隔離指示,以使該RPC客戶端停止自動刷新該路由地址池以及將該路由地址池中目前的地址替換為合併地址,該合併地址為該RPC客戶端根據該路由地址池中目前的地址以及預設的手動地址清單中的地址合併產生。
優選地,該地址資訊具體為源IP地址以及目標IP地址,根據用戶發送的環境隔離請求中所攜帶的地址資訊確定需要進行環境隔離的RPC客戶端,具體為:從該環境隔離請求中提取該地址資訊;通過查詢RPC服務端的介面獲取需要進行環境隔離的服務;將與該源IP地址對應的RPC客戶端作為該需要進行環境隔離的RPC客戶端。
優選地,在向該RPC客戶端發送環境隔離指示之後,還包括:若接收到該RPC客戶端發送的環境隔離成功回應,向該RPC客戶端發送隔離狀態檢查指示,並將該RPC客戶端返回的查詢結果回饋至該用戶;該狀態檢查指示用於使該RPC客戶端查詢自身與各個下游RPC服務端之間的介面是否正常,並將查詢結果發送至該環境隔離設備。
優選地,在向該RPC客戶端發送環境隔離指示之後,還包括:若接收到該RPC客戶端發送的環境隔離成功回應,檢測該RPC客戶端的各下游RPC服務端的狀態是否正常,以及判斷該路由地址池中的合併地址在經過預設的路由規則篩選後是否為空;若存在狀態為異常的下游RPC服務端,或該路由地址池中的合併地址在經過預設的路由規則篩選後為空,向該用戶發送下游存活安全告警提示。
優選地,在向該RPC客戶端發送環境隔離指示之後,還包括:當接收到該用戶發送的環境隔離取消請求時,向該RPC客戶端發送環境隔離取消指示,以使該RPC客戶端將該路由地址池中的合併地址刷新為該全量地址,並使路由地址池按照預設的週期自動刷新預置的該全量地址。
相應地,本發明還提出了一種RPC客戶端,該RPC客戶端與預設的環境隔離設備相連,該RPC客戶端中的路由地址池按照預設的週期自動刷新預置的全量地址,該RPC客戶端還包括:接收模組,接收該環境隔離設備發送的環境隔離指示;替換模組,該RPC客戶端停止自動刷新該路由地址池,並將該路由地址池中目前的地址替換為合併地址,該合併地址為該RPC客戶端根據該路由地址池中目前的地 址以及預設的手動地址清單中的地址合併產生;產生模組,當該接收模組接收到用戶發送的服務調用請求時根據該路由地址池中的合併地址產生有效的目標地址;發送模組,將該服務調用請求發送至與該目標地址對應的RPC服務端,並將該RPC服務端返回的業務處理結果回饋至該用戶。
優選地,該手動地址清單由參與環境隔離的RPC客戶端以及RPC服務端的地址組成,該替換模組將該路由地址池中目前的地址替換為合併地址,具體為:從該手動地址清單中篩選可用於地址合併的第一子地址;將停止自動刷新後的該路由地址池中的地址作為第二子地址;根據預設的地址合併演算法,將該第一子地址以及該第二子地址合併為該合併地址;將該路由地址池中目前的地址刪除,並將該合併地址添加至該路由地址池中。
優選地,該產生模組具體用於:查詢預設的路由規則,以及在該路由地址池中查詢可用的設備地址;根據該路由規則對查詢到的設備地址進行篩選;若存在符合該路由規則的設備地址,將該設備地址作為該目標地址; 若不存在符合該路由規則的設備地址,向該用戶返回服用調用失敗回應。
優選地,還包括:回應模組,向該環境隔離設備返回環境隔離成功回應;查詢模組,當接收到該環境隔離設備發送的隔離狀態檢查指示時查詢自身與各個下游RPC服務端之間的介面是否正常,並將查詢結果發送至該環境隔離設備,以使該環境隔離設備向該用戶回饋該查詢結果。
優選地,還包括:撤銷模組,在接收到該環境隔離設備發送的環境隔離取消指示時將該路由地址池中的合併地址刷新為該全量地址,並使路由地址池按照預設的週期自動刷新預置的該全量地址。
相應地,本發明還提出了一種環境隔離設備,該環境隔離設備與該RPC客戶端相連,該環境隔離設備包括:確定模組,根據用戶發送的環境隔離請求中所攜帶的地址資訊確定需要進行環境隔離的RPC客戶端,該RPC客戶端中的路由地址池按照預設的週期自動刷新預置的全量地址;發送模組,向該RPC客戶端發送環境隔離指示,以使該RPC客戶端停止自動刷新該路由地址池以及將該路由地址池中目前的地址替換為合併地址,該合併地址為該RPC客戶端根據該路由地址池中目前的地址以及預設的手 動地址清單中的地址合併產生。
優選地,該地址資訊具體為源IP地址以及目標IP地址,該確定模組具體用於:從該環境隔離請求中提取該地址資訊;通過查詢RPC服務端的介面獲取需要進行環境隔離的服務;將與該源IP地址對應的RPC客戶端作為該需要進行環境隔離的RPC客戶端。
優選地,還包括:第一檢測模組,在接收到該RPC客戶端發送的環境隔離成功回應時向該RPC客戶端發送隔離狀態檢查指示,並將該RPC客戶端返回的查詢結果回饋至該用戶;該狀態檢查指示用於使該RPC客戶端查詢自身與各個下游RPC服務端之間的介面是否正常,並將該查詢結果發送至該環境隔離設備。
優選地,還包括:第二檢測模組,在接收到該RPC客戶端發送的環境隔離成功回應時檢測該RPC客戶端的各下游RPC服務端的狀態是否正常,以及判斷該路由地址池中的合併地址在經過預設的路由規則篩選後是否為空,並在存在狀態為異常的下游RPC服務端或該路由地址池中的合併地址在經過預設的路由規則篩選後為空時,向該用戶發送下游存活安全告警提示。
優選地,還包括: 撤銷模組,當接收到該用戶發送的環境隔離取消請求時向該RPC客戶端發送環境隔離取消指示,以使該RPC客戶端將該路由地址池中的合併地址刷新為該全量地址,並使路由地址池按照預設的週期自動刷新預置的該全量地址。
由此可見,通過應用本發明的技術方案,預先令RPC客戶端中的路由地址池按照預設的週期自動刷新預置的全量地址,RPC客戶端接收環境隔離設備發送的環境隔離指示後停止自動刷新路由地址池,並將路由地址池中目前的地址替換為合併地址,後續當RPC客戶端接收到用戶發送的服務調用請求時,根據路由地址池中的合併地址產生有效的目標地址,將服務調用請求發送至與目標地址對應的RPC服務端,並將RPC服務端返回的業務處理結果回饋至用戶。從而在不對硬體進行修改的前提下,解決了在RPC調用過程中進行環境隔離所帶來的複雜度高、無法完全隔離等問題,保證了環境隔離的安全性以及穩定性。
810‧‧‧接收模組
820‧‧‧替換模組
830‧‧‧產生模組
840‧‧‧發送模組
910‧‧‧確定模組
920‧‧‧發送模組
圖1為現有技術中的RPC原理示意圖;圖2為現有技術中基於請求路由的隔離架構示意圖;圖3為本發明提出的一種環境隔離方法的流程示意圖;圖4為本發明具體實施例提出的一種隔離優化方案示意圖; 圖5為本發明提出的另一種環境隔離方法的流程示意圖;圖6為本發明具體實施例中進行隔離的流程示意圖;圖7為本發明具體實施例中隔離的整體架構圖;圖8為本發明提出的一種RPC客戶端的結構示意圖圖9為本發明提出的一種環境隔離設備的結構示意圖。
有鑒於背景技術中的問題,發明人在實現本發明的技術方案的過程中參考了現有的基於請求路由的隔離模型,針對現有的RPC請求路由模型提出了一種環境隔離方法,該方法應用於RPC客戶端,為了在用戶針對該RPC客戶端實現環境隔離,本發明額外設置了與該RPC客戶端相連的環境隔離設備,在本發明的優選實施例中,該環境隔離設備可結合視覺化平臺的功能設置為隔離控制台,該隔離控制台能夠將RPC客戶端與RPC服務端之間的上下游關係以及狀態進行視覺化展示,並且面向用戶(技術人員)提供隔離調用操作。除此之外,由於後續需要利用RPC客戶端中的路由地址池獲取地址,因此本發明的技術方案設置路由地址池按照預設的週期自動刷新預置的全量地址(現有的RPC客戶端中的路由地址池中的地址固定且無法修改)。該全量地址是為應用與目前所有設備上的地址(包括參與隔離的設備和不參與隔離的設備),預先 設置且地址固定。
如圖3所示,為本發明提出的一種環境隔離方法的流程示意圖,包括以下步驟:
S301,該RPC客戶端接收該環境隔離設備發送的環境隔離指示。
為了保持隔離環境的真實性以及安全性,當用戶當需要發起環境隔離時,用戶將請求發送至環境隔離設備,環境隔離設備在根據請求中攜帶的地址資訊確定了相應的RPC客戶端之後,即向RPC客戶端發送環境隔離指示。
S302,該RPC客戶端停止自動刷新該路由地址池,並將該路由地址池中目前的地址替換為合併地址。
有別于傳統隔離在路由規則上修改,本發明的技術方案主要針對RPC客戶端的路由地址池進行改進。為此本發明技術方案預設了手動地址清單,該手動地址清單由參與環境隔離的RPC客戶端以及RPC服務端的地址組成,該手動地址清單可通過環境隔離設備設置,技術人員也可以通過環境隔離設備對其進行修改。
基於RPC客戶端路由地址池中目前的地址以及預設的手動地址清單中的地址,RPC客戶端將二者合併產生合併地址,並將該合併地址替換路由地址池中原有的地址,在本發明的優選實施例中,具體的步驟如下:步驟a)從該手動地址清單中篩選可用於地址合併的第一子地址;步驟b)將停止自動刷新後的該路由地址池中的地址 作為第二子地址;步驟c)根據預設的地址合併演算法,將該第一子地址以及該第二子地址合併為該合併地址;步驟d)將該路由地址池中目前的地址刪除,並將該合併地址添加至該路由地址池中。
上述步驟通過地址合併演算法完成手動設置地址和自動刷新的全量地址快速有效合併,並且合併後不影響歸組情況,得到合併地址後,後續即可基於RPC請求路由的功能完成環境隔離,操作簡單、修改程度小,不觸碰路由層文件,避免出錯。
在執行完畢以上步驟後,為了使用戶知曉目前的環境隔離進度,本發明優選實施例令RPC客戶端向該環境隔離設備返回環境隔離成功回應。環境隔離設備在接收到該環境隔離成功回應後,一方面將其回饋至用戶,另一方面指示RPC客戶端對隔離狀態進行檢查,從而保證隔離環境的穩定。因此當RPC客戶端接收到該環境隔離設備發送的隔離狀態檢查指示時,查詢自身與各個下游RPC服務端之間的介面是否正常,並將查詢結果發送至該環境隔離設備,以使該環境隔離設備向該用戶回饋該查詢結果。
S303,當該RPC客戶端接收到用戶發送的服務調用請求時,根據該路由地址池中的合併地址產生有效的目標地址。
由於路由地址池中可能會存在多個合併地址,並且根據實際應用場景的不同也需要採用不同的路由規則(該路 由規則一般在客戶端中儲存,需要技術人員操作更新,與IP地址並非一一對應,但是與IP地址之間有一些泛化的匹配規則),因此在通過合併地址得到有效的目標地址的過程中,需要利用預設的路由規則對合併地址進行篩選。具體地,本發明優選實施例首先查詢預設的路由規則,以及在該路由地址池中查詢可用的設備地址,再根據該路由規則對查詢到的設備地址進行篩選,若存在符合該路由規則的設備地址,將該設備地址作為該目標地址;若不存在符合該路由規則的設備地址,向該用戶返回服用調用失敗回應。
結合圖4所示的隔離優化方案示意圖,該具體實施例的隔離優化方案流程如下:
步驟a)客戶向RPC客戶端發起服務請求。RPC客戶端會查詢路由地址池中可用的合併地址和路由規則。
步驟b)若用戶事先通過環境隔離設備開啟了隔離,RPC客戶端的路由地址池將會在之前關閉自動刷新且通過讀取手動設置的地址清單,以及將手動設置的地址清單和路由地址池中截至到自動刷新停止時的全量地址通過地址合併演算法進行快速合併。此時針對路由地址池中的合併地址經過各種路由規則的過濾後取得有效的目標地址,也可能由於條件不滿足(下游應用並不存在),合併後地址為空。
S304,該RPC客戶端將該服務調用請求發送至與該目標地址對應的RPC服務端,並將該RPC服務端返回的 業務處理結果回饋至該用戶。
通過S301-S304的環境隔離優化方案,有效地提升了隔離的即時性、安全性、穩定性和隔離環境的真實性,同時降低了成本以及簡化了操作。後續當用戶需要取消隔離時,用戶亦是通過環境隔離設備向RPC客戶端下達環境隔離取消指示。相應地,RPC客戶端在接收到環境隔離設備發送的環境隔離取消指示後,將該路由地址池中的合併地址刷新為該全量地址,並使路由地址池按照預設的週期自動刷新預置的該全量地址。
在S303的具體實施例中,當確定了有效的目標地址後後,RPC客戶端即向服務端發送請求,並接受服務端的結果回饋,完成該次用戶的服務調用。後續若用戶需要取消隔離,那麼只需要恢復地址池的自動刷新即可,原有的地址將被刷新成全量地址,這樣下次請求就不會定向。換言之,環境隔離取消操作中不需要做任何清理工作,簡單高效。
以上實施例以RPC客戶端的角度詳細闡述了環境隔離的具體實現方式以及細節。除此之外,本發明以環境隔離設備的角度,還提出了另一種環境隔離方法,該方法應用於環境隔離設備,且需要保證環境隔離設備與該RPC客戶端相連(實體連接或是邏輯連接均可),如圖5所示,該方法包括以下步驟:
S501,根據用戶發送的環境隔離請求中所攜帶的地址資訊確定需要進行環境隔離的RPC客戶端,該RPC客戶 端中的路由地址池按照預設的週期自動刷新預置的全量地址。
在本發明的優選實施例中,地址資訊可具體為源IP地址以及目標IP地址,基於這兩個詳細的IP地址,該步驟首先從該環境隔離請求中提取該地址資訊,隨後通過查詢RPC服務端的介面獲取需要進行環境隔離的服務,最終將與該源IP地址對應的RPC客戶端作為該需要進行環境隔離的RPC客戶端。
S502,向該RPC客戶端發送環境隔離指示,以使該RPC客戶端停止自動刷新該路由地址池以及將該路由地址池中目前的地址替換為合併地址,該合併地址為該RPC客戶端根據該路由地址池中目前的地址以及預設的手動地址清單中的地址合併產生。
正常情況下,本發明中的RPC客戶端在環境隔離初步完成後會向環境隔離設備返回回應,因此為了保證環境隔離後的穩定性,環境隔離設備可發起隔離狀態檢查以及下游服務可用檢查,相應流程如下:
(一)隔離狀態檢查
若接收到該RPC客戶端發送的環境隔離成功回應,向該RPC客戶端發送隔離狀態檢查指示,並將該RPC客戶端返回的查詢結果回饋至該用戶;該狀態檢查指示用於使該RPC客戶端查詢自身與各個下游RPC服務端之間的介面是否正常,並將查詢結果發送至該環境隔離設備。
(二)下游服務可用檢查
若接收到該RPC客戶端發送的環境隔離成功回應,檢測該RPC客戶端的各下游RPC服務端的狀態是否正常,以及判斷該路由地址池中的合併地址在經過預設的路由規則篩選後是否為空; 若存在狀態為異常的下游RPC服務端,或該路由地址池中的合併地址在經過預設的路由規則篩選後為空,向該用戶發送下游存活安全告警提示。
最終,在用戶需要取消環境隔離的時候,用戶會將環境隔離取消請求發送至環境隔離設備,當環境隔離設備接收到該用戶發送的環境隔離取消請求時,向該RPC客戶端發送環境隔離取消指示,以使該RPC客戶端將該路由地址池中的合併地址刷新為該全量地址,並使路由地址池按照預設的週期自動刷新預置的該全量地址。
需要說明的是,上述的隔離流程中請求隔離以及指示的下發一般可通過REST協議交互。然而,在這些過程中密碼很可能被惡意的用戶劫持,發送惡意隔離請求。因此本發明的優選實施例通過Digest摘要認證方式設置過期時間30秒(該時間可以根據實際情況進行調整),從而有效防止密碼明文傳輸、重播攻擊、支持客戶端對伺服器驗證、有一定的防篡改能力,同時對用戶密碼加密,以避免密碼被盜用造成用戶的損失。Response加密演算法如下:
1.HA1=MD5(A1)=MD5(username:realm:password)
2.HA2=MD5(A2)=MD5(method:digestURI:MD5(entityBody))
3.Response=MD5(HA1:nonce:nonceCount:clientNonce:qop:HA2)
以上實施例闡述了環境隔離設備如何配和RPC客戶端實現環境隔離以及環境隔離後如何實現用戶的服務調用請求,為了進一步闡述本發明的技術思想,現結合圖6所示的具體應用場景,對本發明的技術方案進行說明:
步驟1. 用戶通過流覽器向隔離控制台發起隔離請求,並向隔離控制台提供隔離源IP,目標IP。
步驟2. 隔離控制台通過源IP和目標IP查詢服務端介面,獲得要隔離的服務,再根據源IP向源IP所在的RPC客戶端發起隔離請求,並且傳遞目標IP參數。
步驟3. RPC客戶端獲取到上一步驟傳遞的目標IP地址後,停止地址池自動刷新,並且修改路由地址池裡的地址。具體地,通過地址合併演算法把手動設置的地址清單中的地址和原地址池中的地址進行有效合併。
步驟4. 上一步驟執行結束後,隔離控制台會向用戶發送執行成功或者失敗的回應。
步驟5. 若RPC客戶端成功執行請求路由定向,控制台會開啟隔離狀態檢查和下游存活安全檢查,隔離狀態檢查可以回饋鏈路隔離狀況,比如開啟隔離,關閉隔離亦或是狀態異常,下游存活安全檢查針對下游機器重啟或是通過路由規則篩選後最終地址為空的情況進行監控,防止因 為下游不可用造成上游穩定性問題,影響最終用戶。
步驟6. 前五個步驟已經完成了環境隔離,這時客戶可以向RPC客戶端發起請求,RPC客戶端通過查詢路由地址池獲得合併地址,再經過中心、單元、同機房等過濾規則篩選後得到最終有效的目標地址(也可能合併後結果為空),將RPC客戶端的服務請求發送到指定的RPC服務端
步驟7. RPC服務端處理客戶端發來的請求,完成業務處理後,返回處理結果給RPC客戶端
步驟8. RPC客戶端將結果展示給用戶。
步驟9. 當用戶想取消隔離時,向隔離控制台發送取消隔離請求,隔離控制台根據源IP向源IP所在的RPC客戶端發起取消隔離請求。
步驟10. RPC客戶端接收到取消請求後,恢復刷新機器地址池,並將執行結果返回隔離控制台。
步驟11. 在上一步驟執行結束後,隔離控制台會向客戶發送執行成功或者失敗的回應。
基於上述流程,該具體實施例整體架構如上圖所示,特點如下:1. 不需要對應用做任何修改;2. 不需要單獨部署,運作;3. 即時生效;4. REST資料傳輸採用標準Digest摘要認證,過期時間30秒,有效防止密碼明文傳輸、重播攻擊、支持客戶 端對伺服器驗證、有一定的防篡改能力;5. 有服務狀態和下游存活安全檢查,穩定性高;6. 部署成本低,不需要特殊路由硬體支援;7. 操作簡單,技術人員可通過控制台視覺化進行操作,也可以通過REST協議直接發起請求;8. 隔離和取消隔離方便,取消隔離也不需要做任何清理工作。
為達到以上技術目的,本發明還提出了一種RPC客戶端,如圖8所示,該RPC客戶端與預設的環境隔離設備相連,該RPC客戶端中的路由地址池按照預設的週期自動刷新預置的全量地址,該RPC客戶端還包括:接收模組810,接收該環境隔離設備發送的環境隔離指示;替換模組820,該RPC客戶端停止自動刷新該路由地址池,並將該路由地址池中目前的地址替換為合併地址,該合併地址為該RPC客戶端根據該路由地址池中目前的地址以及預設的手動地址清單中的地址合併產生;產生模組830,當該接收模組接收到用戶發送的服務調用請求時根據該路由地址池中的合併地址產生有效的目標地址;發送模組840,將該服務調用請求發送至與該目標地址對應的RPC服務端,並將該RPC服務端返回的業務處理結果回饋至該用戶。
在具體的應用場景中,該手動地址清單由參與環境隔 離的RPC客戶端以及RPC服務端的地址組成,該替換模組將該路由地址池中目前的地址替換為合併地址,具體為:從該手動地址清單中篩選可用於地址合併的第一子地址;將停止自動刷新後的該路由地址池中的地址作為第二子地址;根據預設的地址合併演算法,將該第一子地址以及該第二子地址合併為該合併地址;將該路由地址池中目前的地址刪除,並將該合併地址添加至該路由地址池中。
在具體的應用場景中,該產生模組具體用於:查詢預設的路由規則,以及在該路由地址池中查詢可用的設備地址;根據該路由規則對查詢到的設備地址進行篩選;若存在符合該路由規則的設備地址,將該設備地址作為該目標地址;若不存在符合該路由規則的設備地址,向該用戶返回服用調用失敗回應。
在具體的應用場景中,還包括:回應模組,向該環境隔離設備返回環境隔離成功回應;查詢模組,當接收到該環境隔離設備發送的隔離狀態檢查指示時查詢自身與各個下游RPC服務端之間的介面 是否正常,並將查詢結果發送至該環境隔離設備,以使該環境隔離設備向該用戶回饋該查詢結果。
在具體的應用場景中,還包括:撤銷模組,在接收到該環境隔離設備發送的環境隔離取消指示時將該路由地址池中的合併地址刷新為該全量地址,並使路由地址池按照預設的週期自動刷新預置的該全量地址。
相應地,本發明還提出了一種環境隔離設備,如圖9所示,該環境隔離設備與RPC客戶端相連,該環境隔離設備包括:確定模組910,根據用戶發送的環境隔離請求中所攜帶的地址資訊確定需要進行環境隔離的RPC客戶端,該RPC客戶端中的路由地址池按照預設的週期自動刷新預置的全量地址;發送模組920,向該RPC客戶端發送環境隔離指示,以使該RPC客戶端停止自動刷新該路由地址池以及將該路由地址池中目前的地址替換為合併地址,該合併地址為該RPC客戶端根據該路由地址池中目前的地址以及預設的手動地址清單中的地址合併產生。
在具體的應用場景中,該地址資訊具體為源IP地址以及目標IP地址,該確定模組具體用於:從該環境隔離請求中提取該地址資訊;通過查詢RPC服務端的介面獲取需要進行環境隔離的服務; 將與該源IP地址對應的RPC客戶端作為該需要進行環境隔離的RPC客戶端。
在具體的應用場景中,還包括:第一檢測模組,在接收到該RPC客戶端發送的環境隔離成功回應時向該RPC客戶端發送隔離狀態檢查指示,並將該RPC客戶端返回的查詢結果回饋至該用戶;該狀態檢查指示用於使該RPC客戶端查詢自身與各個下游RPC服務端之間的介面是否正常,並將該查詢結果發送至該環境隔離設備。
在具體的應用場景中,還包括:第二檢測模組,在接收到該RPC客戶端發送的環境隔離成功回應時檢測該RPC客戶端的各下游RPC服務端的狀態是否正常,以及判斷該路由地址池中的合併地址在經過預設的路由規則篩選後是否為空,並在存在狀態為異常的下游RPC服務端或該路由地址池中的合併地址在經過預設的路由規則篩選後為空時,向該用戶發送下游存活安全告警提示。
在具體的應用場景中,還包括:撤銷模組,當接收到該用戶發送的環境隔離取消請求時向該RPC客戶端發送環境隔離取消指示,以使該RPC客戶端將該路由地址池中的合併地址刷新為該全量地址,並使路由地址池按照預設的週期自動刷新預置的該全量地址。
通過應用本發明的技術方案,預先令RPC客戶端中 的路由地址池按照預設的週期自動刷新預置的全量地址,RPC客戶端接收環境隔離設備發送的環境隔離指示後停止自動刷新路由地址池,並將路由地址池中目前的地址替換為合併地址,後續當RPC客戶端接收到用戶發送的服務調用請求時,根據路由地址池中的合併地址產生有效的目標地址,將服務調用請求發送至與目標地址對應的RPC服務端,並將RPC服務端返回的業務處理結果回饋至用戶。從而在不對硬體進行修改的前提下,解決了在RPC調用過程中進行環境隔離所帶來的複雜度高、無法完全隔離等問題,保證了環境隔離的安全性以及穩定性。
通過以上的實施方式的描述,本領域的技術人員可以清楚地瞭解到本發明可以通過硬體實現,也可以借助軟體加必要的通用硬體平臺的方式來實現。基於這樣的理解,本發明的技術方案可以以軟體產品的形式體現出來,該軟體產品可以儲存在一個非揮發性儲存介質(可以是CD-ROM,隨身碟,行動硬碟等)中,包括若干指令用以使得一台電腦設備(可以是個人電腦,伺服器,或者網路設備等)執行本發明各個實施場景該的方法。
本領域技術人員可以理解圖式只是一個優選實施場景的示意圖,圖式中的模組或流程並不一定是實施本發明所必須的。
本領域技術人員可以理解實施場景中的裝置中的模組可以按照實施場景描述進行分佈於實施場景的裝置中,也可以進行相應變化位於不同於本實施場景的一個或多個裝 置中。上述實施場景的模組可以合併為一個模組,也可以進一步拆分成多個子模組。
上述本發明序號僅僅為了描述,不代表實施場景的優劣。
以上公開的僅為本發明的幾個具體實施場景,但是,本發明並非局限於此,任何本領域的技術人員能思之的變化都應落入本發明的保護範圍。
Claims (20)
- 一種環境隔離方法,應用於RPC(Remote Procedure Call,遠端程序呼叫)客戶端,其特徵在於,預設與該RPC客戶端相連的環境隔離設備,該RPC客戶端中的路由地址池按照預設的週期自動刷新預置的全量地址,其中該全量地址為應用於目前所有該RPC客戶端及RPC服務端上的地址,該方法還包括:該RPC客戶端接收該環境隔離設備發送的環境隔離指示;該RPC客戶端停止自動刷新該路由地址池,並將該路由地址池中目前的地址替換為合併地址,該合併地址為該RPC客戶端根據該路由地址池中目前的地址以及預設的手動地址清單中的地址合併產生;當該RPC客戶端接收到用戶發送的服務調用請求時,根據該路由地址池中的合併地址產生有效的目標地址;該RPC客戶端將該服務調用請求發送至與該目標地址對應的該RPC服務端,並將該RPC服務端返回的業務處理結果回饋至該用戶。
- 如申請專利範圍第1項所述的方法,其中,該手動地址清單由參與環境隔離的RPC客戶端以及RPC服務端的地址組成,該RPC客戶端將該路由地址池中目前的地址替換為合併地址,具體為:從該手動地址清單中篩選可用於地址合併的第一子地 址;將停止自動刷新後的該路由地址池中的地址作為第二子地址;根據預設的地址合併演算法,將該第一子地址以及該第二子地址合併為該合併地址;將該路由地址池中目前的地址刪除,並將該合併地址添加至該路由地址池中。
- 如申請專利範圍第1項所述的方法,其中,該RPC客戶端根據該路由地址池中的合併地址產生有效的目標地址,具體為:查詢預設的路由規則,以及在該路由地址池中查詢可用的設備地址;根據該路由規則對查詢到的設備地址進行篩選;若存在符合該路由規則的設備地址,將該設備地址作為該目標地址;若不存在符合該路由規則的設備地址,向該用戶返回服用調用失敗回應。
- 如申請專利範圍第1項所述的方法,其中,在該RPC客戶端將該路由地址池中目前的地址替換為合併地址之後,還包括:向該環境隔離設備返回環境隔離成功回應;當接收到該環境隔離設備發送的隔離狀態檢查指示時,查詢自身與各個下游RPC服務端之間的介面是否正常,並將查詢結果發送至該環境隔離設備,以使該環境隔 離設備向該用戶回饋該查詢結果。
- 如申請專利範圍第1項所述的方法,其中,在該RPC客戶端將該路由地址池中目前的地址替換為合併地址之後,還包括:若接收到該環境隔離設備發送的環境隔離取消指示,將該路由地址池中的合併地址刷新為該全量地址,並使路由地址池按照預設的週期自動刷新預置的該全量地址。
- 一種環境隔離方法,其特徵在於,該方法應用於環境隔離設備,該環境隔離設備與RPC客戶端相連,該方法包括:根據用戶發送的環境隔離請求中所攜帶的地址資訊確定需要進行環境隔離的該RPC客戶端,該RPC客戶端中的路由地址池按照預設的週期自動刷新預置的全量地址,其中該全量地址為應用於目前所有該RPC客戶端及RPC服務端上的地址;向該RPC客戶端發送環境隔離指示,以使該RPC客戶端停止自動刷新該路由地址池以及將該路由地址池中目前的地址替換為合併地址,該合併地址為該RPC客戶端根據該路由地址池中目前的地址以及預設的手動地址清單中的地址合併產生。
- 如申請專利範圍第6項所述的方法,其中,該地址資訊具體為源IP地址以及目標IP地址,根據用戶發送的環境隔離請求中所攜帶的地址資訊確定需要進行環境隔離的RPC客戶端,具體為: 從該環境隔離請求中提取該地址資訊;通過查詢該RPC服務端的介面獲取需要進行環境隔離的服務;將與該源IP地址對應的RPC客戶端作為該需要進行環境隔離的RPC客戶端。
- 如申請專利範圍第6項所述的方法,其中,在向該RPC客戶端發送環境隔離指示之後,還包括:若接收到該RPC客戶端發送的環境隔離成功回應,向該RPC客戶端發送隔離狀態檢查指示,並將該RPC客戶端返回的查詢結果回饋至該用戶;該狀態檢查指示用於使該RPC客戶端查詢自身與各個下游RPC服務端之間的介面是否正常,並將查詢結果發送至該環境隔離設備。
- 如申請專利範圍第6項所述的方法,其中,在向該RPC客戶端發送環境隔離指示之後,還包括:若接收到該RPC客戶端發送的環境隔離成功回應,檢測該RPC客戶端的各下游RPC服務端的狀態是否正常,以及判斷該路由地址池中的合併地址在經過預設的路由規則篩選後是否為空;若存在狀態為異常的下游RPC服務端,或該路由地址池中的合併地址在經過預設的路由規則篩選後為空,向該用戶發送下游存活安全告警提示。
- 如申請專利範圍第6項所述的方法,其中,在向該RPC客戶端發送環境隔離指示之後,還包括:當接收到該用戶發送的環境隔離取消請求時,向該 RPC客戶端發送環境隔離取消指示,以使該RPC客戶端將該路由地址池中的合併地址刷新為該全量地址,並使路由地址池按照預設的週期自動刷新預置的該全量地址。
- 一種RPC客戶端,其特徵在於,該RPC客戶端與預設的環境隔離設備相連,該RPC客戶端中的路由地址池按照預設的週期自動刷新預置的全量地址,其中該全量地址為應用於目前所有該RPC客戶端及RPC服務端上的地址,該RPC客戶端還包括:接收模組,接收該環境隔離設備發送的環境隔離指示;替換模組,該RPC客戶端停止自動刷新該路由地址池,並將該路由地址池中目前的地址替換為合併地址,該合併地址為該RPC客戶端根據該路由地址池中目前的地址以及預設的手動地址清單中的地址合併產生;產生模組,當該接收模組接收到用戶發送的服務調用請求時根據該路由地址池中的合併地址產生有效的目標地址;發送模組,將該服務調用請求發送至與該目標地址對應的該RPC服務端,並將該RPC服務端返回的業務處理結果回饋至該用戶。
- 如申請專利範圍第11項所述的RPC客戶端,其中,該手動地址清單由參與環境隔離的RPC客戶端以及RPC服務端的地址組成,該替換模組將該路由地址池中目前的地址替換為合併地址,具體為: 從該手動地址清單中篩選可用於地址合併的第一子地址;將停止自動刷新後的該路由地址池中的地址作為第二子地址;根據預設的地址合併演算法,將該第一子地址以及該第二子地址合併為該合併地址;將該路由地址池中目前的地址刪除,並將該合併地址添加至該路由地址池中。
- 如申請專利範圍第11項所述的RPC客戶端,其中,該產生模組具體用於:查詢預設的路由規則,以及在該路由地址池中查詢可用的設備地址;根據該路由規則對查詢到的設備地址進行篩選;若存在符合該路由規則的設備地址,將該設備地址作為該目標地址;若不存在符合該路由規則的設備地址,向該用戶返回服用調用失敗回應。
- 如申請專利範圍第11項所述的RPC客戶端,其中,還包括:回應模組,向該環境隔離設備返回環境隔離成功回應;查詢模組,當接收到該環境隔離設備發送的隔離狀態檢查指示時查詢自身與各個下游RPC服務端之間的介面是否正常,並將查詢結果發送至該環境隔離設備,以使該 環境隔離設備向該用戶回饋該查詢結果。
- 如申請專利範圍第11項所述的RPC客戶端,其中,還包括:撤銷模組,在接收到該環境隔離設備發送的環境隔離取消指示時將該路由地址池中的合併地址刷新為該全量地址,並使路由地址池按照預設的週期自動刷新預置的該全量地址。
- 一種環境隔離設備,其特徵在於,該環境隔離設備與RPC客戶端相連,該環境隔離設備包括:確定模組,根據用戶發送的環境隔離請求中所攜帶的地址資訊確定需要進行環境隔離的RPC客戶端,該RPC客戶端中的路由地址池按照預設的週期自動刷新預置的全量地址,其中該全量地址為應用於目前所有該RPC客戶端及RPC服務端上的地址;發送模組,向該RPC客戶端發送環境隔離指示,以使該RPC客戶端停止自動刷新該路由地址池以及將該路由地址池中目前的地址替換為合併地址,該合併地址為該RPC客戶端根據該路由地址池中目前的地址以及預設的手動地址清單中的地址合併產生。
- 如申請專利範圍第16項所述的環境隔離設備,其中,該地址資訊具體為源IP地址以及目標IP地址,該確定模組具體用於:從該環境隔離請求中提取該地址資訊;通過查詢該RPC服務端的介面獲取需要進行環境隔 離的服務;將與該源IP地址對應的RPC客戶端作為該需要進行環境隔離的RPC客戶端。
- 如申請專利範圍第16項所述的環境隔離設備,其中,還包括:第一檢測模組,在接收到該RPC客戶端發送的環境隔離成功回應時向該RPC客戶端發送隔離狀態檢查指示,並將該RPC客戶端返回的查詢結果回饋至該用戶;該狀態檢查指示用於使該RPC客戶端查詢自身與各個下游RPC服務端之間的介面是否正常,並將該查詢結果發送至該環境隔離設備。
- 如申請專利範圍第16項所述的環境隔離設備,其中,還包括:第二檢測模組,在接收到該RPC客戶端發送的環境隔離成功回應時檢測該RPC客戶端的各下游RPC服務端的狀態是否正常,以及判斷該路由地址池中的合併地址在經過預設的路由規則篩選後是否為空,並在存在狀態為異常的下游RPC服務端或該路由地址池中的合併地址在經過預設的路由規則篩選後為空時,向該用戶發送下游存活安全告警提示。
- 如申請專利範圍第16項所述的環境隔離設備,其中,還包括:撤銷模組,當接收到該用戶發送的環境隔離取消請求時向該RPC客戶端發送環境隔離取消指示,以使該RPC 客戶端將該路由地址池中的合併地址刷新為該全量地址,並使路由地址池按照預設的週期自動刷新預置的該全量地址。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106102699A TWI717457B (zh) | 2017-01-24 | 2017-01-24 | 環境隔離方法及設備 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106102699A TWI717457B (zh) | 2017-01-24 | 2017-01-24 | 環境隔離方法及設備 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201828655A TW201828655A (zh) | 2018-08-01 |
TWI717457B true TWI717457B (zh) | 2021-02-01 |
Family
ID=63960572
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW106102699A TWI717457B (zh) | 2017-01-24 | 2017-01-24 | 環境隔離方法及設備 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI717457B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6434627B1 (en) * | 1999-03-15 | 2002-08-13 | Cisco Technology, Inc. | IP network for accomodating mobile users with incompatible network addressing |
CN106911648A (zh) * | 2015-12-23 | 2017-06-30 | 阿里巴巴集团控股有限公司 | 一种环境隔离方法及设备 |
-
2017
- 2017-01-24 TW TW106102699A patent/TWI717457B/zh active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6434627B1 (en) * | 1999-03-15 | 2002-08-13 | Cisco Technology, Inc. | IP network for accomodating mobile users with incompatible network addressing |
CN106911648A (zh) * | 2015-12-23 | 2017-06-30 | 阿里巴巴集团控股有限公司 | 一种环境隔离方法及设备 |
Also Published As
Publication number | Publication date |
---|---|
TW201828655A (zh) | 2018-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106911648B (zh) | 一种环境隔离方法及设备 | |
US11693746B2 (en) | Systems and methods for enabling a highly available managed failover service | |
US9614737B1 (en) | Appliance backnets in dedicated resource environment | |
US10749971B2 (en) | Virtual private network gateway management | |
JP5945031B2 (ja) | 複製されたデータインスタンスのプロビジョニングおよび管理 | |
US8667096B2 (en) | Automatically generating system restoration order for network recovery | |
US20100223608A1 (en) | Systems and methods for generating reverse installation file for network restoration | |
US11366728B2 (en) | Systems and methods for enabling a highly available managed failover service | |
US20090254642A1 (en) | System and method for providing data and application continuity in a computer system | |
JP2008537203A (ja) | 障害復旧フレームワーク | |
US11341005B2 (en) | Systems and methods for enabling a highly available managed failover service | |
US9992058B2 (en) | Redundant storage solution | |
CN112035215A (zh) | 节点集群的节点自治方法、系统、装置及电子设备 | |
US11165766B2 (en) | Implementing authentication protocol for merging multiple server nodes with trusted platform modules utilizing provisioned node certificates to support concurrent node add and remove | |
US8302165B2 (en) | Establishing trust relationships between computer systems | |
WO2016070651A1 (zh) | 软件中心系统 | |
AU2018306528B2 (en) | Recovery of application functions via analysis of application operational requests | |
CN111104282A (zh) | 一种基于区块链的节点处理方法和装置 | |
CN108600156B (zh) | 一种服务器及安全认证方法 | |
JP2015158773A (ja) | 仮想装置の動作検証装置,仮想装置の動作検証システム及びプログラム | |
CN115766405B (zh) | 一种故障处理方法、装置、设备和存储介质 | |
TWI717457B (zh) | 環境隔離方法及設備 | |
US11290318B2 (en) | Disaster recovery of cloud resources | |
US20240028376A1 (en) | Log forwarding for an agent platform appliance and software-defined data centers that are managed through the agent platform appliance | |
Putri et al. | Implementation of Fault-Tolerance Mechanism in Quorum-Based Blockchain Provisioning in Cloud Infrastructure Using Replication and Monitoring Protocols |