使用騰訊云API網(wǎng)關(guān)實(shí)現(xiàn)多維度精細(xì)化限流

來源: TencentServerless
作者:吳宜展、毛勤斌
時(shí)間:2021-08-12
17669
一個(gè)系統(tǒng)的處理能力是有上限的,當(dāng)遇到搶購等高并發(fā)場(chǎng)景時(shí),如果不采取任何措施,大量的請(qǐng)求會(huì)使得系統(tǒng)在短時(shí)間內(nèi)崩潰,造成不可預(yù)計(jì)的后果。這時(shí)就需要使用「限流」來對(duì)系統(tǒng)進(jìn)行保護(hù)。

一個(gè)系統(tǒng)的處理能力是有上限的,當(dāng)遇到搶購等高并發(fā)場(chǎng)景時(shí),如果不采取任何措施,大量的請(qǐng)求會(huì)使得系統(tǒng)在短時(shí)間內(nèi)崩潰,造成不可預(yù)計(jì)的后果。這時(shí)就需要使用「限流」來對(duì)系統(tǒng)進(jìn)行保護(hù)。

「限流」是指限制并發(fā)訪問數(shù)或者限制一個(gè)時(shí)間窗口內(nèi)允許處理的請(qǐng)求數(shù)量來保護(hù)系統(tǒng),一旦達(dá)到限制數(shù)量,則對(duì)當(dāng)前請(qǐng)求進(jìn)行處理采取對(duì)應(yīng)的拒絕措施,比如跳轉(zhuǎn)到錯(cuò)誤頁面、拒絕請(qǐng)求等。從本質(zhì)上來說,「限流」的主要作用是損失一部分用戶的可用性,為大部分用戶提供穩(wěn)定可靠的服務(wù)?!赶蘖鳌故茿PI網(wǎng)關(guān)最核心的能力之一,本文將帶您了解如何使用騰訊云API網(wǎng)關(guān)實(shí)現(xiàn)多維度,精細(xì)化的限流,最大程度上保護(hù)您的業(yè)務(wù)安全。

01.

使用API網(wǎng)關(guān)實(shí)現(xiàn)限流

640.png

如圖,在騰訊云API網(wǎng)關(guān)上主要可以通過3個(gè)方面進(jìn)行流量管理,保護(hù)后端安全:

1.使用流量控制插件實(shí)現(xiàn)多維度精細(xì)化限流;

2.支持在API網(wǎng)關(guān)上調(diào)整主次業(yè)務(wù)限流值,為核心業(yè)務(wù)分配更多資源;

3.API網(wǎng)關(guān)提供完善的實(shí)時(shí)日志、監(jiān)控、告警能力,方便即時(shí)調(diào)整限流策略。

方案優(yōu)勢(shì)

·免改造

限流策略都收斂在網(wǎng)關(guān)層,無需改造后臺(tái)服務(wù)即可接入;

·維度多

支持多種維度的限流,大到整個(gè)服務(wù),小到某個(gè)用戶都可以設(shè)置限流。同時(shí)支持各種維度間的自由組合,滿足的業(yè)務(wù)場(chǎng)景多;

·性能好

基于開源的經(jīng)典限流算法優(yōu)化,同等條件下性能優(yōu)于傳統(tǒng)的解決方案(如Nginx限流),限流功能本身幾乎不影響接口性能;

·支持流量分析

提供豐富的流量看板和支持實(shí)時(shí)查詢流量數(shù)據(jù)的云API,可基于流量數(shù)據(jù)分析,優(yōu)化限流策略。

02.

「API網(wǎng)關(guān)」流量控制插件

使用流量控制插件是API網(wǎng)關(guān)提供的進(jìn)行流控限制的主要方式,支持設(shè)置三種資源維度(API、應(yīng)用、ClientIP)和四種時(shí)間維度(秒、分鐘、小時(shí)、天)的限流。插件中還支持設(shè)置特殊的應(yīng)用和特殊ClientIP,特例的限流值將覆蓋默認(rèn)的應(yīng)用、ClientIP的限流值。

您可創(chuàng)建基礎(chǔ)流控插件并綁定到API生效,以保護(hù)您的后端服務(wù)。流控插件的使用步驟如下:

1.登錄API網(wǎng)關(guān)控制臺(tái)。

控制臺(tái)地址:https://console.cloud.tencent.com/api

2.在左側(cè)導(dǎo)航欄,單擊「插件」,進(jìn)入插件列表頁,單擊頁面左上角的「新建」,選擇插件類型為「基礎(chǔ)流量控制」,新建一個(gè)基礎(chǔ)流量控制插件,按照您的實(shí)際業(yè)務(wù)需求配置后,點(diǎn)擊「保存」按鈕。

640 (1).png

3.在插件列表中選中剛剛創(chuàng)建好的插件,點(diǎn)擊操作列的「綁定API」,在綁定API彈窗中選擇服務(wù)和環(huán)境,并選擇需要綁定插件的API。

640 (2).png

4.單擊「確定」,即可將插件綁定到API,此時(shí)插件的配置已經(jīng)對(duì)API生效。

03.

「API網(wǎng)關(guān)」服務(wù)降級(jí)

服務(wù)降級(jí)是限流的常用手段,其主要思路是在后端壓力劇增的情況下,根據(jù)當(dāng)前業(yè)務(wù)情況及流量對(duì)一些服務(wù)和頁面有策略的降級(jí),以此釋放服務(wù)器資源以保證核心任務(wù)的正常運(yùn)行。通過API網(wǎng)關(guān)的實(shí)例、服務(wù)、API限流功能可以便捷的實(shí)現(xiàn)服務(wù)降級(jí)。

1.通過API網(wǎng)關(guān)服務(wù)區(qū)分不同業(yè)務(wù)模塊

640 (3).png

專享實(shí)例可提供更高的性能,當(dāng)您通過API網(wǎng)關(guān)服務(wù)來區(qū)分不同業(yè)務(wù)模塊時(shí),可從邏輯上區(qū)分主次業(yè)務(wù),將次要業(yè)務(wù)落在共享實(shí)例,將核心業(yè)務(wù)落在專享實(shí)例中,以便為核心業(yè)務(wù)提供更多資源。兩種實(shí)例間支持無感知的遷移切換,當(dāng)業(yè)務(wù)邏輯變化時(shí),也能方便的進(jìn)行調(diào)整。

2.通過API網(wǎng)關(guān)API區(qū)分不同業(yè)務(wù)模塊

640 (4).png

當(dāng)您通過API網(wǎng)關(guān)來區(qū)分不同業(yè)務(wù)模塊時(shí),業(yè)務(wù)相關(guān)的一組API都處于同一個(gè)服務(wù)下,該服務(wù)的QPS上限是固定的;因此,您可前往API詳情頁,為核心API設(shè)置高QPS上限,為此要API設(shè)置低QPS上限,采用「棄車保帥」的策略,保證核心業(yè)務(wù)的訪問。

04.

「API網(wǎng)關(guān)」實(shí)時(shí)流量監(jiān)控

API網(wǎng)關(guān)基于云日志服務(wù)CLS和云監(jiān)控提供完善的實(shí)時(shí)日志、監(jiān)控、告警能力,目前支持的監(jiān)控指標(biāo)包括請(qǐng)求數(shù)、出流量、響應(yīng)時(shí)間、錯(cuò)誤數(shù)等,所有監(jiān)控指標(biāo)都支持1分鐘、5分鐘、1小時(shí)、1天四種時(shí)間維度,也開放了標(biāo)準(zhǔn)的云API供用戶調(diào)用查詢。

您可以在搶購等高并發(fā)活動(dòng)期間,通過控制臺(tái)監(jiān)控面板或云API實(shí)時(shí)監(jiān)控業(yè)務(wù)流量的變化,根據(jù)實(shí)際情況不斷自動(dòng)或手動(dòng)調(diào)整限流策略,以達(dá)到最好的限流效果。

640.webp.jpg

05.

「API網(wǎng)關(guān)」限流技術(shù)優(yōu)勢(shì)

騰訊云API網(wǎng)關(guān)限流是基于經(jīng)典令牌桶算法進(jìn)行優(yōu)化,性能較通用方案有了有效提升,依賴騰訊云上高可用高性能的中控平臺(tái),具備以下優(yōu)勢(shì):

·能夠有效控制API平均請(qǐng)求頻率;

·平滑處理系統(tǒng)負(fù)載,有力應(yīng)對(duì)流量突增;

·動(dòng)態(tài)計(jì)算令牌速率,減少性能損耗;

·多維度集群化的高精度流控,全力保證后端服務(wù)安全。

640 (5).png

未來展望

目前騰訊云API網(wǎng)關(guān)已經(jīng)支持了非常強(qiáng)大的限流能力,我們也在此基礎(chǔ)上不斷深耕探索,未來的重點(diǎn)一方面是不斷優(yōu)化限流算法,提供極致的性能;另一方面API網(wǎng)關(guān)將推出基于請(qǐng)求參數(shù)的限流能力,滿足更多限流場(chǎng)景,敬請(qǐng)期待!

立即登錄,閱讀全文
版權(quán)說明:
本文內(nèi)容來自于TencentServerless,本站不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。文章內(nèi)容系作者個(gè)人觀點(diǎn),不代表快出海對(duì)觀點(diǎn)贊同或支持。如有侵權(quán),請(qǐng)聯(lián)系管理員(zzx@kchuhai.com)刪除!
掃碼登錄
打開掃一掃, 關(guān)注公眾號(hào)后即可登錄/注冊(cè)
加載中
二維碼已失效 請(qǐng)重試
刷新
賬號(hào)登錄/注冊(cè)
個(gè)人VIP
小程序
快出海小程序
公眾號(hào)
快出海公眾號(hào)
商務(wù)合作
商務(wù)合作
投稿采訪
投稿采訪
出海管家
出海管家