本技術涉及計算機,尤其涉及一種流量限制方法、裝置、設備及存儲介質。
背景技術:
1、隨著互聯(lián)網(wǎng)的高速發(fā)展,用戶的規(guī)模和需求也在急劇增長,在一些場景下,需要限制流量以保證服務器能夠正常運行,例如,當某一時刻用戶訪問量過高時,可能會導致服務器崩潰。
2、在相關技術中,通常采用令牌桶算法對訪問設備進行限流處理。令牌桶算法可以在預設的令牌桶(一種邏輯上的容器,用于存儲令牌)中生成令牌,只有當令牌桶中有令牌時,系統(tǒng)才會發(fā)放令牌給訪問設備;服務器在確認訪問設備持有令牌后,才會允許訪問設備的訪問請求,否則將拒絕該請求,從而達到流量限制的效果。
3、然而,在上述方法中,當令牌桶中不存在令牌時,可能會導致已經(jīng)處于服務狀態(tài)的用戶被拒絕訪問,導致流量限制的靈活性較差。
技術實現(xiàn)思路
1、本技術提供一種流量限制方法、裝置、設備及存儲介質,用以解決用戶類型確定準確性較差的問題。
2、第一方面,本技術提供一種流量限制方法,應用于第一服務器,所述方法包括:
3、接收第一設備發(fā)送的第一訪問請求,所述第一訪問請求用于請求訪問目標系統(tǒng);
4、根據(jù)所述訪問請求,確定所述目標系統(tǒng)的當前訪問量;
5、若所述當前訪問量大于或等于第一閾值,則根據(jù)所述第一訪問請求,確定所述第一設備的設備類型,所述設備類型為第一類型或者第二類型,所述第一類型用于指示所述第一設備在當前時刻之前的預設時長內(nèi)訪問過所述目標系統(tǒng),所述第二類型用于指示所述第一設備在當前時刻之前的預設時長內(nèi)未訪問過所述目標系統(tǒng);
6、根據(jù)所述第一設備的設備類型,對所述第一訪問請求進行處理。
7、在一種可能的設計中,根據(jù)所述第一訪問請求,確定所述第一設備的設備類型,包括:
8、判斷所述第一訪問請求中是否包括第一訪問令牌;
9、若是,則根據(jù)所述第一訪問令牌和所述第一服務器對應的令牌列表,確定所述第一設備的設備類型;
10、若否,則確定所述第一設備的設備類型為所述第二類型。
11、在一種可能的設計中,根據(jù)所述第一訪問令牌和所述第一服務器對應的令牌列表,確定所述第一設備的設備類型,包括:
12、判斷所述令牌列表中是否包括所述第一訪問令牌;
13、若是,則獲取所述第一訪問令牌的令牌失效時刻,并根據(jù)所述令牌失效時刻和當前時刻,確定所述第一設備的設備類型;
14、若否,則在所述第一訪問請求中獲取歷史訪問信息,并根據(jù)所述歷史訪問信息,確定所述第一設備的設備類型。
15、在一種可能的設計中,根據(jù)所述令牌失效時刻和當前時刻,確定所述第一設備的設備類型,包括:
16、若所述令牌失效時刻位于所述當前時刻之后,則確定所述第一設備的設備類型為所述第一類型;
17、若所述令牌失效時刻位于所述當前時刻之前,則確定所述第一設備的設備類型為所述第二類型。
18、在一種可能的設計中,根據(jù)所述歷史訪問信息,確定所述第一設備的設備類型,包括:
19、根據(jù)所述歷史訪問信息,確定所述第一設備上一次對所述目標系統(tǒng)的訪問時刻;
20、若所述訪問時刻與當前時刻之間的時間差大于或等于預設時長,則確定所述第一設備的設備類型為所述第二類型;
21、若所述訪問時刻與所述當前時刻之間的時間差小于所述預設時長,則在所述歷史訪問信息中確定所述第一設備上一次訪問所述目標系統(tǒng)時所訪問的第二服務器,并向所述第二服務器發(fā)送切換請求,所述切換請求用于請求所述第二服務器對所述第一訪問請求進行處理。
22、在一種可能的設計中,根據(jù)所述第一設備的設備類型,對所述第一訪問請求進行處理,包括:
23、獲取所述目標系統(tǒng)對應的剩余訪問量;
24、若所述剩余訪問量大于0,則對所述第一訪問請求進行業(yè)務處理,以使所述第一設備訪問所述目標系統(tǒng);
25、若所述剩余訪問量等于0,則根據(jù)所述第一設備的設備類型,對所述第一訪問請求進行緩存處理,以限制所述第一設備訪問所述目標系統(tǒng)。
26、在一種可能的設計中,根據(jù)所述第一設備的設備類型,對所述第一訪問請求進行緩存處理,包括:
27、若所述第一設備的設備類型為所述第一類型,則將第一訪問請求添加至第一隊列,所述第一隊列中用于存儲所述第一類型的設備發(fā)送的、且限制訪問所述目標系統(tǒng)的訪問請求;
28、若所述第一設備的設備類型為所述第二類型,則將第一訪問請求添加至第二隊列,所述第二隊列中用于存儲所述第二類型的設備發(fā)送的、且限制訪問所述目標系統(tǒng)的訪問請求。
29、在一種可能的設計中,所述方法還包括:
30、在所述剩余訪問量從0切換為n時,確定所述第一隊列中存在的訪問請求的第一數(shù)量m,所述n為正整數(shù),所述m為整數(shù);
31、若所述m大于或等于所述n,則控制所述前n個訪問請求對應的終端設備訪問所述目標系統(tǒng);
32、若所述m小于所述n,則控制所述第一隊列中的m個訪問請求對應的終端設備訪問所述目標系統(tǒng),以及控制所述第二隊列中前n-m個訪問請求對應的終端設備訪問所述目標系統(tǒng)。
33、第二方面,本技術提供一種流量限制裝置,包括:接收模塊、第一確定模塊、第二確定模塊和處理模塊,其中,
34、所述接收模塊用于,接收第一設備發(fā)送的第一訪問請求,所述第一訪問請求用于請求訪問目標系統(tǒng);
35、所述第一確定模塊用于,根據(jù)所述訪問請求,確定所述目標系統(tǒng)的當前訪問量;
36、所述第二確定模塊用于,若所述當前訪問量大于或等于第一閾值,則根據(jù)所述第一訪問請求,確定所述第一設備的設備類型,所述設備類型為第一類型或者第二類型,所述第一類型用于指示所述第一設備在當前時刻之前的預設時長內(nèi)訪問過所述目標系統(tǒng),所述第二類型用于指示所述第一設備在當前時刻之前的預設時長內(nèi)未訪問過所述目標系統(tǒng);
37、所述處理模塊用于,根據(jù)所述第一設備的設備類型,對所述第一訪問請求進行處理。
38、在一種可能的設計中,第二確定模塊具體用于:
39、判斷所述第一訪問請求中是否包括第一訪問令牌;
40、若是,則根據(jù)所述第一訪問令牌和所述第一服務器對應的令牌列表,確定所述第一設備的設備類型;
41、若否,則確定所述第一設備的設備類型為所述第二類型。
42、在一種可能的設計中,第二確定模塊具體用于:
43、判斷所述令牌列表中是否包括所述第一訪問令牌;
44、若是,則獲取所述第一訪問令牌的令牌失效時刻,并根據(jù)所述令牌失效時刻和當前時刻,確定所述第一設備的設備類型;
45、若否,則在所述第一訪問請求中獲取歷史訪問信息,并根據(jù)所述歷史訪問信息,確定所述第一設備的設備類型。
46、在一種可能的設計中,第二確定模塊具體用于:
47、若所述令牌失效時刻位于所述當前時刻之后,則確定所述第一設備的設備類型為所述第一類型;
48、若所述令牌失效時刻位于所述當前時刻之前,則確定所述第一設備的設備類型為所述第二類型。
49、在一種可能的設計中,第二確定模塊具體用于:
50、根據(jù)所述歷史訪問信息,確定所述第一設備上一次對所述目標系統(tǒng)的訪問時刻;
51、若所述訪問時刻與當前時刻之間的時間差大于或等于預設時長,則確定所述第一設備的設備類型為所述第二類型;
52、若所述訪問時刻與所述當前時刻之間的時間差小于所述預設時長,則在所述歷史訪問信息中確定所述第一設備上一次訪問所述目標系統(tǒng)時所訪問的第二服務器,并向所述第二服務器發(fā)送切換請求,所述切換請求用于請求所述第二服務器對所述第一訪問請求進行處理。
53、在一種可能的設計中,處理模塊具體用于:
54、獲取所述目標系統(tǒng)對應的剩余訪問量;
55、若所述剩余訪問量大于0,則對所述第一訪問請求進行業(yè)務處理,以使所述第一設備訪問所述目標系統(tǒng);
56、若所述剩余訪問量等于0,則根據(jù)所述第一設備的設備類型,對所述第一訪問請求進行緩存處理,以限制所述第一設備訪問所述目標系統(tǒng)。
57、在一種可能的設計中,處理模塊具體用于:
58、若所述第一設備的設備類型為所述第一類型,則將第一訪問請求添加至第一隊列,所述第一隊列中用于存儲所述第一類型的設備發(fā)送的、且限制訪問所述目標系統(tǒng)的訪問請求;
59、若所述第一設備的設備類型為所述第二類型,則將第一訪問請求添加至第二隊列,所述第二隊列中用于存儲所述第二類型的設備發(fā)送的、且限制訪問所述目標系統(tǒng)的訪問請求。
60、在一種可能的設計中,處理模塊還包括第三確定模塊、第一控制模塊和第二控制模塊:
61、所述第三確定模塊用于,在所述剩余訪問量從0切換為n時,確定所述第一隊列中存在的訪問請求的第一數(shù)量m,所述n為正整數(shù),所述m為整數(shù);
62、所述第一控制模塊用于,若所述m大于或等于所述n,則控制所述前n個訪問請求對應的終端設備訪問所述目標系統(tǒng);
63、所述第二控制模塊用于,若所述m小于所述n,則控制所述第一隊列中的m個訪問請求對應的終端設備訪問所述目標系統(tǒng),以及控制所述第二隊列中前n-m個訪問請求對應的終端設備訪問所述目標系統(tǒng)。
64、第三方面,本技術實施例提供一種電子設備,包括:至少一個處理器和存儲器;存儲器存儲計算機執(zhí)行指令;至少一個處理器執(zhí)行存儲器存儲的計算機執(zhí)行指令,使得至少一個處理器執(zhí)行如上第一方面以及第一方面各種可能的設計的流量限制方法。
65、第四方面,本技術實施例提供一種計算機可讀存儲介質,計算機可讀存儲介質中存儲有計算機執(zhí)行指令,當處理器執(zhí)行計算機執(zhí)行指令時,實現(xiàn)如上第一方面以及第一方面各種可能的設計的流量限制方法。
66、第五方面,本技術實施例提供一種計算機程序產(chǎn)品,包括計算機程序,計算機程序被處理器執(zhí)行時,實現(xiàn)如上第一方面以及第一方面各種可能的設計的流量限制方法。
67、本技術提供的流量限制方法、裝置、設備及存儲介質,當服務器獲取到訪問請求后,根據(jù)當前訪問量確定是否需要進行流量限制,若當前訪問量大于或等于第一閾值,則表明需要進行流量限制,根據(jù)訪問請求可以確定訪問設備的設備類型,根據(jù)訪問設備的設備類型從而確定訪問請求的處理方式,提高了流量限制的靈活性。