[發明專利]一種基于滑動時間窗的服務熔斷方法在審
| 申請號: | 202010361930.5 | 申請日: | 2020-04-30 |
| 公開(公告)號: | CN111552587A | 公開(公告)日: | 2020-08-18 |
| 發明(設計)人: | 張路路;李耀;田駿;彭磊;楊志文 | 申請(專利權)人: | 武漢眾邦銀行股份有限公司 |
| 主分類號: | G06F11/07 | 分類號: | G06F11/07 |
| 代理公司: | 成都正煜知識產權代理事務所(普通合伙) 51312 | 代理人: | 徐金瓊 |
| 地址: | 432200 湖北省武漢市黃陂區盤龍城經濟開發區漢*** | 國省代碼: | 湖北;42 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 滑動 時間 服務 熔斷 方法 | ||
本發明涉及流量控制領域,提供了一種基于滑動時間窗的服務熔斷方法,其主旨在于解決目前的熔斷機制一般都是基于數據庫或者緩存,這種方式統計效率低下,資源消耗過大的問題。其主要方案包括根據時間窗口大小T和時間滑動刻度k構建包含n個元素、元素動態下標為index的服務異常調用次數登記環隊列和服務總調用次數登記環隊列,每個元素用于存放對應滑動刻度k內服務請求次數;當服務器接收服務請求時,通過是否需要熔斷判斷功能shouldFuse,判斷是否熔斷,如是熔斷則直接將服務調用返回,不處理業務,否則登記服務總調用次數,如果調用業務邏輯服務異常或者超時,則登記異常服務調用總次數;返回業務邏輯處理結果。
技術領域
本發明涉及用于互聯網行業應用服務器的流量控制領域,提供了一種基于滑動時間窗的服務熔斷方法。
背景技術
現在的很多應用都是面向互聯網的,其背后的服務器就面臨著高并發的難題,由于服務器的資源是有限的,所以為保證系統服務的穩定,流量控制的概念就被提了出來。而服務熔斷就是流量控制手段中的一種。服務熔斷指的是在一定的時間窗口內,某些服務調用異常的指標(失敗率/數量或者超時率/數量)達到了預先設計的閥值,則將該服務熔斷(停止對外服務)一段時間,等熔斷時間過后再對外提供服務。
目前的熔斷機制一般都是基于數據庫或者緩存的,將每次的服務調用狀態都保存到數據庫或者緩存,每次服務調用前都訪問數據庫或者緩存去統計過去某個時間段內的指標。這種方式統計精確,但存在統計效率低下,資源消耗過大的問題。
發明內容
本發明的目的在于解決目前的熔斷機制一般都是基于數據庫或者緩存的,將每次的服務調用狀態都保存到數據庫或者緩存,每次服務調用前都訪問數據庫或者緩存去統計過去某個時間段內的指標。這種方式統計精確,但存在統計效率低下,資源消耗過大的問題。
為解決上述技術問題,本發明采用以下技術方案:
本發明提供了一種基于滑動時間窗的服務熔斷方法,包括如下步驟:
步驟1、根據時間窗口大小T和時間滑動刻度k構建,構建包含n個元素的環形隊列,每個元素用于存放對應滑動刻度k內服務請求次數,即元素值value;
根據時間窗口大小T和時間滑動刻度k,配置一個與當前滑動刻度k對應的一個動態下標index,動態下標index指向當前時間滑動刻度k對應的元素的位置;
步驟2、按照步驟1分別得到服務異常調用次數登記環隊列實例q1、服務總調用次數登記環隊列q2;
步驟3、當服務器接收服務請求時,通過是否需要熔斷判斷功能shouldFuse,判斷是否熔斷,將結果保存至a;
步驟4:如果a等于true,則直接將服務調用返回,不處理業務,這里返回的可以是一個服務熔斷的提示;
步驟5:如果a等于false,則執行如下步驟
步驟6:調用serviceRecord功能,登記服務總調用次數,如果調用業務邏輯服務異常或者超時,則調用expServiceRecord功能,登記異常服務調用總次數;
步驟7:返回業務邏輯處理結果。
上述技術方案中,步驟1具體包括以下步驟:
步驟1.1:聲明時間窗大小T,時間窗滑動刻度k,動態下標index,數組queue;
步驟1.2:定義環形隊列類構造函數queueInit參數(a,b),得到功能queueInit,功能如下:
步驟1.2.1:設置T=a,k=b;
步驟1.2.2:設置隊列的大小為size=T/k;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于武漢眾邦銀行股份有限公司,未經武漢眾邦銀行股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010361930.5/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種十字鏡及光學儀器
- 下一篇:軟排線加熱折多角度機構





