本申請(qǐng)涉及互聯(lián)網(wǎng),尤其涉及一種流量控制方法、裝置、設(shè)備、存儲(chǔ)介質(zhì)及產(chǎn)品。
背景技術(shù):
1、隨著互聯(lián)網(wǎng)的快速發(fā)展,網(wǎng)絡(luò)流量呈現(xiàn)爆炸式增長(zhǎng)。大量的用戶(hù)請(qǐng)求和數(shù)據(jù)傳輸使得系統(tǒng)面臨著巨大的壓力。在這種情況下,如果沒(méi)有有效的流量控制機(jī)制,系統(tǒng)很容易因?yàn)檫^(guò)載而崩潰或性能下降。因此,流量控制技術(shù)的出現(xiàn)成為了解決這一問(wèn)題的關(guān)鍵手段。分布式系統(tǒng)的普及進(jìn)一步推動(dòng)了流量控制技術(shù)的發(fā)展。通過(guò)限制訪問(wèn)速率,流量控制可以確保系統(tǒng)的穩(wěn)定性和可靠性,并防止單個(gè)用戶(hù)或來(lái)源過(guò)度消耗資源。流量控制在保護(hù)系統(tǒng)免受過(guò)載和攻擊、確保服務(wù)質(zhì)量方面發(fā)揮著重要的作用,并為分布式系統(tǒng)和互聯(lián)網(wǎng)業(yè)務(wù)提供了有效的支持。
2、相關(guān)技術(shù)的流量控制方法在處理高并發(fā)請(qǐng)求時(shí),往往存在計(jì)數(shù)誤差的問(wèn)題。由于時(shí)間窗口的劃分和更新可能不精確,導(dǎo)致限流結(jié)果不夠準(zhǔn)確,可能讓過(guò)多的請(qǐng)求通過(guò)或錯(cuò)誤地拒絕合法請(qǐng)求。并且相關(guān)技術(shù)的流量控制方法需要維護(hù)大量的計(jì)數(shù)器和狀態(tài)信息,導(dǎo)致存儲(chǔ)開(kāi)銷(xiāo)增大。同時(shí),在高并發(fā)場(chǎng)景下,頻繁的計(jì)數(shù)和狀態(tài)更新也會(huì)帶來(lái)較大的計(jì)算開(kāi)銷(xiāo),降低系統(tǒng)的處理性能。也即相關(guān)技術(shù)中的流量控制方法存在準(zhǔn)確性不佳且效率低下的技術(shù)問(wèn)題。
技術(shù)實(shí)現(xiàn)思路
1、本申請(qǐng)實(shí)施例提供一種流量控制方法、裝置、設(shè)備、存儲(chǔ)介質(zhì)及產(chǎn)品,本申請(qǐng)實(shí)施例能夠通過(guò)使用兩個(gè)不同時(shí)間窗口的鏈表來(lái)存儲(chǔ)流量計(jì)數(shù)和時(shí)間戳信息,能夠提高流量控制的效率和準(zhǔn)確性。
2、本申請(qǐng)實(shí)施例的技術(shù)方案是這樣實(shí)現(xiàn)的:
3、本申請(qǐng)實(shí)施例提供一種流量控制方法,所述方法包括:獲取第一鏈表和第二鏈表;其中,所述第一鏈表中的節(jié)點(diǎn)包括以第一時(shí)間窗口進(jìn)行統(tǒng)計(jì)的流量計(jì)數(shù)和第一時(shí)間戳,所述第二鏈表中的節(jié)點(diǎn)包括以第二時(shí)間窗口進(jìn)行統(tǒng)計(jì)的流量計(jì)數(shù)和第二時(shí)間戳,所述第一時(shí)間窗口大于所述第二時(shí)間窗口;從所述第一鏈表中確定至少一個(gè)第一節(jié)點(diǎn),以及從所述第二鏈表中確定至少一個(gè)第二節(jié)點(diǎn);其中,所述第一節(jié)點(diǎn)包括的第一時(shí)間戳在第一時(shí)段內(nèi),所述第二節(jié)點(diǎn)包括的第二時(shí)間戳在第二時(shí)段內(nèi),所述第一時(shí)段的起始時(shí)間點(diǎn)與所述第二時(shí)段的終止時(shí)間點(diǎn)相同;根據(jù)所述第一節(jié)點(diǎn)包括的流量計(jì)數(shù)和所述第二節(jié)點(diǎn)包括的流量計(jì)數(shù),進(jìn)行流量控制。
4、本申請(qǐng)實(shí)施例提供一種流量控制裝置,包括:鏈表獲取模塊,用于獲取第一鏈表和第二鏈表;其中,所述第一鏈表中的節(jié)點(diǎn)包括以第一時(shí)間窗口進(jìn)行統(tǒng)計(jì)的流量計(jì)數(shù)和第一時(shí)間戳,所述第二鏈表中的節(jié)點(diǎn)包括以第二時(shí)間窗口進(jìn)行統(tǒng)計(jì)的流量計(jì)數(shù)和第二時(shí)間戳,所述第一時(shí)間窗口大于所述第二時(shí)間窗口;節(jié)點(diǎn)確定模塊,用于從所述第一鏈表中確定至少一個(gè)第一節(jié)點(diǎn),以及從所述第二鏈表中確定至少一個(gè)第二節(jié)點(diǎn);其中,所述第一節(jié)點(diǎn)包括的第一時(shí)間戳在第一時(shí)段內(nèi),所述第二節(jié)點(diǎn)包括的第二時(shí)間戳在第二時(shí)段內(nèi),所述第一時(shí)段的起始時(shí)間點(diǎn)與所述第二時(shí)段的終止時(shí)間點(diǎn)相同;流量控制模塊,用于根據(jù)所述第一節(jié)點(diǎn)包括的流量計(jì)數(shù)和所述第二節(jié)點(diǎn)包括的流量計(jì)數(shù),進(jìn)行流量控制。
5、本申請(qǐng)實(shí)施例提供一種電子設(shè)備,所述電子設(shè)備包括:存儲(chǔ)器,用于存儲(chǔ)計(jì)算機(jī)可執(zhí)行指令;處理器,用于執(zhí)行所述存儲(chǔ)器中存儲(chǔ)的計(jì)算機(jī)可執(zhí)行指令時(shí),實(shí)現(xiàn)本申請(qǐng)實(shí)施例提供的流量控制方法。
6、本申請(qǐng)實(shí)施例提供一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),存儲(chǔ)有計(jì)算機(jī)程序或計(jì)算機(jī)可執(zhí)行指令,用于被處理器執(zhí)行時(shí)實(shí)現(xiàn)本申請(qǐng)實(shí)施例提供的流量控制方法。
7、本申請(qǐng)實(shí)施例提供一種計(jì)算機(jī)程序產(chǎn)品,包括計(jì)算機(jī)程序或計(jì)算機(jī)可執(zhí)行指令,所述計(jì)算機(jī)程序或計(jì)算機(jī)可執(zhí)行指令被處理器執(zhí)行時(shí),實(shí)現(xiàn)本申請(qǐng)實(shí)施例提供的流量控制方法。
8、本申請(qǐng)實(shí)施例具有以下有益效果:
9、一方面,本申請(qǐng)實(shí)施例通過(guò)使用兩個(gè)不同時(shí)間窗口的鏈表來(lái)存儲(chǔ)流量計(jì)數(shù),可以在不同的時(shí)間尺度上進(jìn)行流量統(tǒng)計(jì),且由于第一時(shí)間窗口大于第二時(shí)間窗口,因此,在進(jìn)行流量統(tǒng)計(jì)時(shí),能夠在確定出基于相對(duì)較大的第一時(shí)間窗口統(tǒng)計(jì)流量計(jì)數(shù)的第一節(jié)點(diǎn)的同時(shí),還確定出了基于相對(duì)較小的第二時(shí)間窗口統(tǒng)計(jì)流量計(jì)數(shù)的第二節(jié)點(diǎn),從而基于第一節(jié)點(diǎn)和第二節(jié)點(diǎn),能夠?qū)α髁坑?jì)數(shù)進(jìn)行精確的統(tǒng)計(jì),進(jìn)而基于精確的流量計(jì)數(shù)統(tǒng)計(jì)結(jié)果能夠?qū)α髁窟M(jìn)行準(zhǔn)確的控制。
10、另一方面,由于第一時(shí)間窗口大于第二時(shí)間窗口,因此,在統(tǒng)計(jì)第一時(shí)段和第二時(shí)段中的流量計(jì)數(shù)時(shí),是先在相對(duì)較大的第一時(shí)間窗口下進(jìn)行快速的統(tǒng)計(jì),然后再考慮統(tǒng)計(jì)精度,在相對(duì)較小的第二時(shí)間窗口下進(jìn)行流量計(jì)數(shù)的精確統(tǒng)計(jì),從而能夠在保證流量計(jì)數(shù)統(tǒng)計(jì)精度的同時(shí),提高了流量統(tǒng)計(jì)的效率。
1.一種流量控制方法,其特征在于,所述方法包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)所述第一節(jié)點(diǎn)包括的流量計(jì)數(shù)和所述第二節(jié)點(diǎn)包括的流量計(jì)數(shù),進(jìn)行流量控制,包括:
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述根據(jù)接收到的網(wǎng)絡(luò)請(qǐng)求,對(duì)所述第一鏈表和所述第二鏈表進(jìn)行更新,包括:
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述方法還包括:
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述從所述第一鏈表中確定至少一個(gè)第一節(jié)點(diǎn),以及從所述第二鏈表中確定至少一個(gè)第二節(jié)點(diǎn),包括:
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述從所述第二鏈表中確定至少一個(gè)第二節(jié)點(diǎn),包括:
7.一種流量控制裝置,其特征在于,所述裝置包括:
8.一種電子設(shè)備,其特征在于,包括:
9.一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),存儲(chǔ)有計(jì)算機(jī)可執(zhí)行指令或者計(jì)算機(jī)程序,其特征在于,所述計(jì)算機(jī)可執(zhí)行指令或者計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)權(quán)利要求1至6任一項(xiàng)所述的流量控制方法。
10.一種計(jì)算機(jī)程序產(chǎn)品,包括計(jì)算機(jī)可執(zhí)行指令或計(jì)算機(jī)程序,其特征在于,所述計(jì)算機(jī)可執(zhí)行指令或計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)權(quán)利要求1至6任一項(xiàng)所述的流量控制方法。