[發明專利]一種請求限速方法、裝置、電子設備及存儲介質在審
| 申請號: | 202010215327.6 | 申請日: | 2020-03-24 |
| 公開(公告)號: | CN111381988A | 公開(公告)日: | 2020-07-07 |
| 發明(設計)人: | 張德陽;王兆仲 | 申請(專利權)人: | 北京奇藝世紀科技有限公司 |
| 主分類號: | G06F9/54 | 分類號: | G06F9/54 |
| 代理公司: | 北京潤澤恒知識產權代理有限公司 11319 | 代理人: | 莎日娜 |
| 地址: | 100080 北京市海淀*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 請求 限速 方法 裝置 電子設備 存儲 介質 | ||
本申請提供了一種請求限速方法、裝置、電子設備及存儲介質,所述方法包括:接收終端發送的請求,所述請求攜帶時間戳;根據所述時間戳,獲得在至少兩個時間周期內已發送到緩存隊列的請求的數量,所述緩存隊列用于緩存待處理的請求,各時間周期互不相同;在任意時間周期內已發送到緩存隊列的請求的數量大于所屬時間周期對應的預設閾值時,針對所述終端發送的請求執行限速策略。通過本申請的請求限速方法,可以根據實際需求設置多個單位不同的時間周期,通過對各個時間周期內已發送到緩存隊列的請求的數量進行監控,進而實現對接口的訪問速率的靈活控制,尤其是在高并發請求下,能保證服務端正常服務于大部分用戶的請求,避免系統癱瘓的狀況。
技術領域
本發明涉及系統維護技術領域,特別是涉及一種請求限速方法、裝置、電子設備及存儲介質。
背景技術
在開發高并發系統時,通??梢圆捎萌N方式來保護系統,包括:緩存、降級以及限流。緩存的目的是提升系統訪問速度且增大系統的吞吐量;降級的目的是當服務出現問題或者影響到核心流程的性能時,將出現問題的服務暫時屏蔽,等待用戶訪問高峰期過后或問題解決后再打開;限流的目的是通過對并發訪問或請求進行限速,或者對一個時間窗口內的請求進行限速以保護系統,在達到限制速率時拒絕服務。然而,在一些高并發系統后端重要服務之間的調用場景中,無論是緩存、降級還是限流,均無法實現對系統接口的訪問速率的靈活控制,因而無法較好地實現對系統的保護。
發明內容
本申請提供了一種請求限速方法、裝置、電子設備及存儲介質,旨在針對高并發系統中后端接口的比較重要或基礎的接口,提供一種更靈活的請求限速方法。具體技術方案如下:
在本申請實施例第一方面,首先提供了一種請求限速方法,執行于服務器,包括:
接收終端發送的請求,所述請求攜帶時間戳;
根據所述時間戳,獲得在至少兩個時間周期內已發送到緩存隊列的請求的數量,所述緩存隊列用于緩存待處理的請求,各時間周期的單位互不相同;
在任意時間周期內已發送到緩存隊列的請求的數量大于所屬時間周期對應的預設閾值時,針對所述終端發送的請求執行限速策略。
可選地,至少兩個時間周期包括:以秒為單位的第一時間周期、以分鐘為單位的第二時間周期、以小時為單位的第三時間周期;
根據所述時間戳,獲得在至少兩個時間周期內已發送到緩存隊列的請求的數量,包括:
根據所述時間戳的秒值,獲得在與所述秒值對應的一秒鐘內已發送到緩存隊列的請求的第一數量;
根據所述時間戳的分鐘值,獲得在與所述分鐘值對應的一分鐘內已發送到緩存隊列的請求的第二數量;
根據所述時間戳的小時值,獲得在與所述小時值對應的一小時內已發送到緩存隊列的請求的第三數量;
在任意時間周期內已發送到緩存隊列的請求的數量大于所屬時間周期對應的預設閾值時,針對所述終端發送的請求執行限速策略,包括:
在所述第一數量、第二數量以及第三數量中存在至少一個數量大于對應的預設閾值時,針對所述終端發送的請求執行限速策略。
可選地,所述方法還包括:
在所有時間周期內已發送到緩存隊列的請求的數量均不大于所屬時間周期對應的預設閾值時,將所述請求發送到所述緩存隊列,并更新各個時間周期內已發送到緩存隊列的請求的數量。
可選地,在接收終端發送的請求之前,所述方法還包括:
在本地為各時間周期分別創建對應的緩存對象,所述緩存對象的有效時長大于對應的時間周期的長度,所述緩存對象用于以鍵值對的形式存儲下一次接收到的請求的時間戳,和在下一次接收到的請求的時間戳所屬的各個時間周期內已發送到緩存隊列的請求的數量;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京奇藝世紀科技有限公司,未經北京奇藝世紀科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010215327.6/2.html,轉載請聲明來源鉆瓜專利網。





