集群流控
更新時(shí)間:
相較于普通的單機(jī)流控,集群流控可以精確控制集群內(nèi)某個(gè)服務(wù)的實(shí)時(shí)調(diào)用總量。在網(wǎng)關(guān)防護(hù)中采用集群流控,用戶可無(wú)需關(guān)心負(fù)載均衡狀況和網(wǎng)關(guān)數(shù)量,只需配置總閾值即可完成操作。本文主要介紹設(shè)置集群流控的操作步驟。
計(jì)費(fèi)說(shuō)明
自2021年03月22日起,集群流控功能公測(cè)期結(jié)束,正式開始收費(fèi)。集群流控功能按應(yīng)用申請(qǐng)的QPS量級(jí)收費(fèi),具體收費(fèi)方式,請(qǐng)參見(jiàn)價(jià)格頁(yè)面。
說(shuō)明 在2021年03月22日之前創(chuàng)建,且在2021年03月22日之后未進(jìn)行變更的集群暫不開啟計(jì)費(fèi)。
集群流控試用檔位的Token Server可供您繼續(xù)測(cè)試使用,不會(huì)產(chǎn)生額外費(fèi)用。試用檔位單個(gè)應(yīng)用QPS閾值之和不超過(guò)2000,接口總流量不超過(guò)3000。
說(shuō)明 試用檔位僅供測(cè)試效果使用,不保證穩(wěn)定性,請(qǐng)勿在生產(chǎn)環(huán)境使用。
前提條件
- 已開通AHAS專業(yè)版,若沒(méi)有開通,請(qǐng)進(jìn)入開通頁(yè)面。
- Spring-Cloud-Gateway-Starter-AHAS-Sentinel和Spring-Cloud-Zuul-Starter-AHAS-Sentinel版本≥v1.3.7,對(duì)應(yīng)AHAS-Sentinel-Client版本≥v1.8.8。Agent版本≥v1.8.6。
步驟一:選擇檔位創(chuàng)建集群
- 登錄AHAS控制臺(tái),然后在頁(yè)面左上角選擇地域。
- 在控制臺(tái)左側(cè)導(dǎo)航欄中選擇 。
- 在網(wǎng)關(guān)防護(hù)頁(yè)面單擊目標(biāo)應(yīng)用卡片。
- 在網(wǎng)關(guān)防護(hù)管理頁(yè)左側(cè)導(dǎo)航欄,單擊集群流控。
- 在集群流控資源配置區(qū)域內(nèi),單擊右下角的編輯。
- 選擇集群類型為生產(chǎn),滑動(dòng)指針選擇集群流控的總配置量級(jí),單擊保存,然后在對(duì)話框中單擊確認(rèn)。
總配置量級(jí)即最大QPS,表示需要流控的接口所能承載的預(yù)估的最大QPS,代表可能到來(lái)的最大流量。
說(shuō)明 實(shí)際流量(無(wú)論是否被流控)超出配置的最大QPS后,流控策略會(huì)退化到單機(jī)模式。為保證流控效果,閾值之和上限為配置最大QPS的95%,例如最大QPS選擇100000 ,則所有規(guī)則閾值之和最大值為95000。選定總配置量級(jí)檔位并創(chuàng)建集群后,系統(tǒng)會(huì)自動(dòng)為該應(yīng)用分配集群的Token Server。 - 可選:單擊Token Client設(shè)置區(qū)域操作列的編輯,設(shè)置Token請(qǐng)求超時(shí)時(shí)間,然后單擊確定。
在某些場(chǎng)景下,集群流控Client與Token Server之間的網(wǎng)絡(luò)通信時(shí)延較高,需要調(diào)整超時(shí)時(shí)間。
說(shuō)明- AHAS Sentinel Client 1.6.0及以上版本支持設(shè)置Token Client。
- Token請(qǐng)求超時(shí)時(shí)間單位為ms,取值范圍為(0,10000],一般不建議超過(guò)20 ms。公網(wǎng)環(huán)境網(wǎng)絡(luò)延時(shí)較高,建議設(shè)置超時(shí)時(shí)長(zhǎng)約為50 ms,但不建議超過(guò)80 ms。
步驟二:設(shè)置集群流控規(guī)則
- 在網(wǎng)關(guān)防護(hù)管理頁(yè)左側(cè)導(dǎo)航欄,單擊規(guī)則管理。
- 單擊集群流控規(guī)則頁(yè)簽,然后單擊新增集群流控規(guī)則。
- 在新增集群流控規(guī)則對(duì)話框,設(shè)置相關(guān)參數(shù)。
參數(shù) 描述 示例 接口名稱 設(shè)置接口名稱,為對(duì)應(yīng)網(wǎng)關(guān)的Route ID或自定義API分組名稱。 httpbin_route 是否開啟 開啟此開關(guān),規(guī)則即生效;關(guān)閉此開關(guān),規(guī)則不生效。 開啟 集群閾值 表示該接口的限流閾值。 100 統(tǒng)計(jì)窗口時(shí)長(zhǎng) 集群流控統(tǒng)計(jì)的時(shí)間窗口長(zhǎng)度,取值范圍為1秒~24小時(shí)。 1秒 失敗退化策略 當(dāng)出現(xiàn)連接失敗、通信失敗或Token Server不可用等情況時(shí),流控規(guī)則是退化到單機(jī)限流的模式或是直接通過(guò)忽略失敗情況: - 退化到單機(jī)限流:當(dāng)出現(xiàn)通信失敗的情況時(shí),退化到設(shè)置的單機(jī)閾值來(lái)進(jìn)行流控。需要在規(guī)則中配置單機(jī)退化閾值,代表單機(jī)的兜底閾值。
- 直接通過(guò):當(dāng)出現(xiàn)通信失敗的情況時(shí),請(qǐng)求直接通過(guò)。
退化到單機(jī)限流 退化閾值自動(dòng)調(diào)整 開啟后會(huì)自動(dòng)調(diào)整退化閾值,默認(rèn)關(guān)閉。 說(shuō)明 此功能需要SDK版本≥1.8.6。關(guān)閉 退化單機(jī)閾值 代表單機(jī)的兜底閾值,當(dāng)失敗退化策略選擇退化到單機(jī)限流時(shí),需要設(shè)置此選項(xiàng)。 說(shuō)明 只有在沒(méi)有開啟退化閾值自動(dòng)調(diào)整的情況下,才需要手動(dòng)填寫退化單機(jī)閾值。若開啟退化閾值自動(dòng)調(diào)整,您無(wú)需填寫退化單機(jī)閾值,而需設(shè)置自動(dòng)調(diào)整增量值。10 自動(dòng)調(diào)整增量值 當(dāng)開啟退化閾值自動(dòng)調(diào)整時(shí),需要設(shè)置自動(dòng)調(diào)整的增量。這是在根據(jù)接口閾值與應(yīng)用機(jī)器數(shù)量計(jì)算出的單機(jī)均攤流量基礎(chǔ)上,用來(lái)提供保護(hù)退化閾值的一個(gè)增量。即單機(jī)均攤流量加上增量值為實(shí)際生效退化閾值。 2 - 單擊新建,完成規(guī)則創(chuàng)建。創(chuàng)建規(guī)則完成后,可以在規(guī)則設(shè)置頁(yè)面查看到創(chuàng)建的集群流控規(guī)則,閾值模式為集群總體。
文檔內(nèi)容是否對(duì)您有幫助?