[發明專利]一種應對遠程調用依賴的超時熔斷方法和系統有效
| 申請號: | 201710255978.6 | 申請日: | 2017-04-18 |
| 公開(公告)號: | CN107171828B | 公開(公告)日: | 2020-04-10 |
| 發明(設計)人: | 張清鎖 | 申請(專利權)人: | 北京思特奇信息技術股份有限公司 |
| 主分類號: | H04L12/24 | 分類號: | H04L12/24;H04L12/26;H04L29/08 |
| 代理公司: | 北京輕創知識產權代理有限公司 11212 | 代理人: | 楊立 |
| 地址: | 100086 北京市海淀*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 應對 遠程 調用 依賴 超時 熔斷 方法 系統 | ||
技術領域
本發明涉及互聯網技術領域,特別涉及一種應對遠程調用依賴的超時熔斷方法和系統。
背景技術
復雜分布式架構通常都具有很多依賴,比如HTTP、Netty、Dubbo等,如果一個應用不能對來自依賴的故障進行隔離,那該應用就處在被拖垮的風險中。在一個高流量高并發的系統中,某個單一的后端一旦發生延遲,將會在數秒內導致所有應用資源被耗盡。現有的處理方法主要是通過請求超時方式,通過超時時間進行阻斷,但此種方式在大并情況下會導致系統資源耗盡。
發明內容
本發明提供了一種應對遠程調用依賴的超時熔斷方法和系統,解決了以上所述的技術問題。
本發明解決上述技術問題的技術方案如下:
一種應對遠程調用依賴的超時熔斷方法,包括以下步驟:
步驟1,獲取服務調用請求,并判斷所述服務調用請求對應的目標服務是否為熔斷狀態,若否,則執行步驟2,若是,則執行步驟3;
步驟2,調用所述目標服務,并將所述目標服務發送至服務使用模塊,然后返回至步驟1;
步驟3,獲取所述目標服務的已熔斷時長,并判斷所述已熔斷時長是否達到預設恢復時間,若是,則進行預設的熔斷恢復步驟,若否,則向服務使用模塊返回異常響應信息。
本發明的有益效果是:本發明的方法借鑒了電路熔斷的理念,如果某個目標服務調用慢或者有大量超時,此時,熔斷該服務的調用,對于后續調用請求,不再繼續調用目標服務,直接返回,從而快速釋放資源;如果目標服務情況好轉則恢復調用,避免在某一服務故障時,由此帶來的服務調用連鎖反應,引起大面積的系統癱瘓,同時在依賴的服務回復后系統能夠通過算法自動恢復正常調用,解決了傳統服務調用通過socket超時時間判斷超時引起的系統癱瘓問題。
在上述技術方案的基礎上,本發明還可以做如下改進。
進一步,所述預設的熔斷恢復步驟具體為:從服務提供模塊中調用預設次數的所述目標服務,并獲取所述目標服務每次調用的請求響應時間,判斷所有的所述請求響應時間是否均達到預設的響應時間閾值,若是,則將所述目標服務的狀態恢復為未熔斷狀態,若否,則將所述目標服務的狀態保持為已熔斷狀態。
采用上述進一步方案的有益效果是:本進一步技術方案中,所述請求響應時間為客戶端發出請求到得到響應的整個時間,如果所述目標服務每次調用的請求響應時間均小于預設的響應時間閾值,則說明所述目標服務已恢復健康,因此可以將目標服務的狀態恢復為未熔斷狀態,從而對所述目標服務進行正常調用。
進一步,所述服務調用請求為HTTP請求。
進一步,步驟1中,通過get或post方式接收所述HTTP請求。
采用上述進一步方案的有益效果是:本進一步技術方案中,HTTP是一個屬于應用層的面向對象的協議,由于其簡捷、快速的方式,適用于分布式超媒體信息系統,而通過get或post方式發送HTTP請求和接收HTTP響應,只需傳送請求方法和路徑,因此簡單快速。
進一步,步驟2中判斷所述目標服務是否為熔斷狀態具體為:獲取所述目標服務在預設時間范圍的請求錯誤率,并判斷所述請求錯誤率是否達到預設錯誤率閾值,若是,則判斷所述目標服務為熔斷狀態,若否,則判斷所述目標服務為未熔斷狀態。
采用上述進一步方案的有益效果是:本進一步技術方案中,所述請求錯誤率為目標服務的失敗次數、超時次數和拒絕次數的和占整個請求次數的比例,通過請求錯誤率的實時值可以獲知目標服務當前的狀態,當請求錯誤率達到預設錯誤率閾值時,說明該目標服務再繼續調用容易導致系統崩潰,此時將目標服務設定為熔斷狀態,從而可以直接返回異常響應信息,快速釋放資源,維持系統的正常運行狀態,當目標服務情況好轉即可恢復調用。
進一步,步驟2中,將所述HTTP請求包裝為CircuitCommand類,所述CircuitCommand類包括預設熔斷算法,所述預設熔斷算法包括所述預設時間范圍和所述預設錯誤率閾值,通過所述CircuitCommand類判斷所述目標服務是否為熔斷狀態。
采用上述進一步方案的有益效果是:本進一步技術方案中采用CircuitCommand類進行熔斷算法判斷,不僅算法的實現過程簡單而且判斷速度快、效率高。
為了解決本發明的技術問題,還提供了一種應對遠程調用依賴的超時熔斷系統,包括請求獲取單元、第一判斷單元、服務調用單元、第二判斷單元、熔斷恢復單元和異常信息生成單元,
所述請求獲取單元用于獲取服務調用請求;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京思特奇信息技術股份有限公司,未經北京思特奇信息技術股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710255978.6/2.html,轉載請聲明來源鉆瓜專利網。





