本申請屬于互聯網,具體涉及一種應用程序編程接口(applicationprogramming?interface,api)接口的限流方法、裝置、電子設備和存儲介質。
背景技術:
1、隨著互聯網的發展,服務器承擔著越來越大的請求量,在這種高并發訪問環境下,為防止突發流量壓垮服務器,保證服務器的穩定性,通常需要給服務端配置限流策略。目前主流的限流算法主要為令牌桶限流、漏桶限流以及計數器限流,還有在分布式場景下,基于緩存隊列的滑動窗口限流方法。
2、但是上述解決方案只能解決單個api接口的限流問題。在實際應用中,一方面,一個后端服務擁有多個重要程度不一樣的api接口,難以準確地為每個api接口逐一配置流量閾值,并且,為每個api接口逐一配置流量閾值的工作量也較大。
技術實現思路
1、本申請實施例的目的是提供一種api接口的限流方法、裝置、電子設備和存儲介質,能夠解決為每個api接口逐一配置流量閾值而導致流量閾值的準確性不高以及工作量較大的問題。
2、第一方面,本申請實施例提供了一種api接口的限流方法,該方法包括:服務器獲取接收到外部請求的目標api接口所屬的目標分組,其中,所述目標分組為第一分組或第二分組,所述第一分組中的每個api接口配置有一個第一限流閾值,所述第二分組配置有一個第二限流閾值,所述第二分組中的各個api接口共享所述第二限流閾值;在所述目標分組為所述第二分組的情況下,獲取為所述第二分組配置的所述第二限流閾值;在所述第二分組中的所有api接口的流量總和超過所述第二限流閾值的情況下,對所述第二分組中的各個api接口進行限流。
3、第二方面,本申請實施例提供了一種api接口的限流裝置,該裝置包括:第一獲模塊,用于獲取接收到外部請求的目標api接口所屬的目標分組,其中,所述目標分組為第一分組或第二分組,所述第一分組中的每個api接口配置有一個第一限流閾值,所述第二分組配置有一個第二限流閾值,所述第二分組中的各個api接口共享所述第二限流閾值;第二獲取模塊,用于在所述目標分組為所述第二分組的情況下,獲取為所述第二分組配置的所述第二限流閾值;限流模塊,用于在所述第二分組中的所有api接口的流量總和超過所述第二限流閾值的情況下,對所述第二分組中的各個api接口進行限流。
4、第三方面,本申請實施例提供了一種電子設備,該電子設備包括處理器和存儲器,所述存儲器存儲可在所述處理器上運行的程序或指令,所述程序或指令被所述處理器執行時實現如第一方面所述的方法的步驟。
5、第四方面,本申請實施例提供了一種可讀存儲介質,所述可讀存儲介質上存儲程序或指令,所述程序或指令被處理器執行時實現如第一方面所述的方法的步驟。
6、第五方面,本申請實施例提供了一種芯片,所述芯片包括處理器和通信接口,所述通信接口和所述處理器耦合,所述處理器用于運行程序或指令,實現如第一方面所述的方法。
7、第六方面,本申請實施例提供一種計算機程序產品,該程序產品被存儲在存儲介質中,該程序產品被至少一個處理器執行以實現如第一方面所述的方法。
8、在本申請實施例中,通過對api接口進行分組,根據api接口的分組來配置不同的閾值,只針對第一分組的各個api接口分別配置一個限流閾值,而對于第二分組,為第二分組配置一個限流閾值,第二分組中的各個api接口共享該限流閾值,而不需要為第二分組中的各個api接口分別配置一個流量閾值,從而減少了配置流量閾值的工作量,避免了無法準確地為每個api接口逐一配置流量閾值的問題。
1.一種api接口的限流方法,其特征在于,包括:
2.根據權利要求1所述的方法,其特征在于,在所述服務器獲取接收到外部請求的目標應用程序編程接口api接口所屬的目標分組之后,所述方法還包括:
3.根據權利要求1或2所述的方法,其特征在于,在所述服務器獲取接收到外部請求的目標應用程序編程接口api接口所屬的目標分組之前,所述方法還包括:
4.根據權利要求3所述的方法,其特征在于,所述服務器獲取接收到外部請求的目標應用程序編程接口api接口所屬的目標分組之前,所述方法還包括:
5.根據權利要求4所述的方法,其特征在于,基于所述服務器的性能臨界值以及各個所述第二分組的屬性,配置各個所述第二分組的第二限流閾值,包括:
6.根據權利要求3所述的方法,其特征在于,在將所述服務器的各個api接口分為一個所述第一分組和至少一個所述第二分組之后,所述方法還包括:
7.根據權利要求6所述的方法,其特征在于,在將所述第一分組內的各個所述api接口在上一周期內的qps的最大值設置為所述api接口的第一限流閾值之后,所述方法還包括:
8.一種api接口的限流裝置,其特征在于,包括:
9.一種電子設備,包括存儲器和處理器,其特征在于,所述處理器執行所述計算機程序時實現權利要求1-7中任一項所述方法的步驟。
10.一種可讀存儲介質,其特征在于,所述計算機可讀存儲介質存儲計算機指令,該計算機指令用于使該計算機執行權利要求1-7所述方法的步驟。