配置行為
當監(jiān)控的Web資源或RPC資源由于達到預設的流控閾值、觸發(fā)熔斷機制或者執(zhí)行降級規(guī)則時,F(xiàn)allback行為將被激活以提供備選處理邏輯。對于Web資源,通常會配置一個備用控制器或處理器來返回友好的提示信息,或者執(zhí)行其他替代操作,而不是直接拋出異常或響應錯誤狀態(tài)碼。而對于RPC資源,F(xiàn)allback行為則表現(xiàn)為調(diào)用本地的回退方法代替遠程服務調(diào)用,防止因遠程服務不可用而導致整個調(diào)用鏈路中斷。
前提條件
開通企業(yè)版。相關(guān)內(nèi)容,請參見微服務治理升級為企業(yè)版。
MSE治理中心已接入微服務應用,相關(guān)內(nèi)容,請參見:
新增行為
登錄MSE治理中心控制臺,并在頂部菜單欄選擇地域。
在左側(cè)導航欄,選擇治理中心 > 應用治理。
在應用列表頁面,單擊目標應用的資源卡片,然后在左側(cè)導航欄單擊流量治理。
在流量治理頁面,單擊流量防護頁簽,然后單擊行為管理頁簽。
單擊新增行為,在新增行為對話框中選擇資源類型并完成對應配置,然后單擊新建。
Web資源
參數(shù)
描述
示例值
行為名稱
該行為的名稱。長度不超過128個字符,同一個應用內(nèi)名稱不能重復。
測試行為
針對的資源類型
選擇為Web類型。
Web
Web 限流處理策略
定義Web接口訪問觸發(fā)某種規(guī)則后的行為表現(xiàn)。自定義返回:需設置HTTP返回狀態(tài)碼、返回內(nèi)容的格式和返回的內(nèi)容。表示W(wǎng)eb接口訪問觸發(fā)規(guī)則后返回自定義的內(nèi)容。
自定義返回
HTTP 返回狀態(tài)碼
默認為429。當Web限流處理策略為自定義返回時,需要填寫。
429
返回 content-type
設置返回內(nèi)容的格式為普通文本或JSON。
JSON字符串
HTTP 返回文本
輸入當Web接口訪問觸發(fā)規(guī)則后返回的內(nèi)容。當Web限流處理策略為自定義返回時,需要填寫。
{"message": "blocked oops"}
RPC資源
參數(shù)
描述
示例值
行為名稱
該行為的名稱。長度不超過128個字符,同一個應用內(nèi)名稱不能重復。
測試行為
針對的資源類型
選擇為Rpc類型。
說明Apache Dubbo2.7.0到2.7.3版本不支持自定義行為,這些版本限流返回的是
java.lang.RuntimeException
,內(nèi)容包含SentinelBlockedException
及限流信息。Rpc
Rpc 限流處理策略
定義Rpc接口訪問觸發(fā)某種規(guī)則后的行為表現(xiàn)。
自定義返回:自定義返回結(jié)果。需設置HTTP返回狀態(tài)碼、返回內(nèi)容的格式和返回的內(nèi)容。表示Rpc接口訪問觸發(fā)規(guī)則后返回自定義的內(nèi)容。
自定義異常:拋出自定義異常。需設置異常的類名和異常文本,表示Rpc接口訪問觸發(fā)規(guī)則后系統(tǒng)會返回指定的異常信息。
自定義返回/自定義異常
Rpc 限流處理策略為自定義返回
自定義返回類名
填寫類名稱路徑。
說明自定義返回目前不支持對象類型中包含未確定類型的泛型,如Map<K, V>、List<T>等。
com.alibaba.demo.OrderService:getOrder(long)
自定義返回內(nèi)容(JSON 格式)
填寫當Rpc接口訪問觸發(fā)規(guī)則時返回結(jié)果的對象內(nèi)容。
{"id": "123", "name": "test"}
Rpc 限流處理策略為自定義異常
異常類名
填寫異常類名稱路徑。
java.lang.RuntimeException
異常信息文本
填寫Rpc接口訪問觸發(fā)規(guī)則后拋出自定義異常的文本信息。
"Operation failed"
新增的行為會顯示在行為管理頁面中。
修改或刪除行為
登錄MSE治理中心控制臺,并在頂部菜單欄選擇地域。
在左側(cè)導航欄,選擇治理中心 > 應用治理。
在應用列表頁面,單擊目標應用的資源卡片,然后在左側(cè)導航欄單擊流量治理。
在流量治理頁面,單擊流量防護頁簽,然后單擊行為管理頁簽。
您可以單擊目標行為對應操作列下的修改或刪除,完成修改或刪除行為。
關(guān)聯(lián)行為
在配置各類控制規(guī)則時,都可以關(guān)聯(lián)對應的行為,本文以流控規(guī)則為例關(guān)聯(lián)目標行為。
登錄MSE治理中心控制臺,并在頂部菜單欄選擇地域。
在左側(cè)導航欄,選擇治理中心 > 應用治理。
在應用列表頁面,單擊目標應用的資源卡片,然后在左側(cè)導航欄單擊流量治理。
在流量治理頁面,單擊流量防護頁簽,然后單擊接口流控頁簽。
在接口流控頁簽下單擊新增流控規(guī)則。
在新增流控防護規(guī)則對話框中完成配置。完成選擇防護場景和配置防護規(guī)則后,在配置防護行為區(qū)域,完成下列設置。
在選擇防護場景步驟,選擇接口類型為WEB服務或RPC服務,然后選擇流量類型、接口名稱及防護類型。
在配置防護規(guī)則步驟,設置單機QPS閾值并選擇流控效果。
在配置防護行為步驟,選擇關(guān)聯(lián)行為下拉列表中的目標行為進行關(guān)聯(lián),或單擊新增行為來創(chuàng)建新的行為進行關(guān)聯(lián)。
說明如果您不需要自定義限流后的Fallback行為,則選擇默認行為即可,默認接口類型為空。
新增規(guī)則時,若當前接口已有綁定行為,后續(xù)若綁定新的行為則會覆蓋接口下已有行為。
選擇Fallback行為時,若不選擇接口類型,則綁定默認行為;選擇接口類型并綁定相應類型行為后,行為類型不可修改,但行為可以修改。
對于 Feign 框架其自身的 Fallback 機制生效,自定義行為不生效。
單擊新增。