当监控的Web资源或RPC资源由于达到预设的流控阈值、触发熔断机制或者执行降级规则时,Fallback行为将被激活以提供备选处理逻辑。对于Web资源,通常会配置一个备用控制器或处理器来返回友好的提示信息,或者执行其他替代操作,而不是直接抛出异常或响应错误状态码。而对于RPC资源,Fallback行为则表现为调用本地的回退方法代替远程服务调用,防止因远程服务不可用而导致整个调用链路中断。
前提条件
开通企业版。相关内容,请参见微服务治理升级为企业版。
MSE治理中心已接入微服务应用,相关内容,请参见:
新增行为
登录MSE治理中心控制台,并在顶部菜单栏选择地域。
在左侧导航栏,选择治理中心 > 应用治理。
在应用列表页面,单击目标应用的资源卡片,然后在左侧导航栏单击流量治理。
在流量治理页面,单击流量防护页签,然后单击行为管理页签。
单击新增行为,在新增行为对话框中选择资源类型并完成对应配置,然后单击新建。
Web资源
参数
描述
示例值
行为名称
该行为的名称。长度不超过128个字符,同一个应用内名称不能重复。
测试行为
针对的资源类型
选择为Web类型。
Web
Web 限流处理策略
定义Web接口访问触发某种规则后的行为表现。自定义返回:需设置HTTP返回状态码、返回内容的格式和返回的内容。表示Web接口访问触发规则后返回自定义的内容。
自定义返回
HTTP 返回状态码
默认为429。当Web限流处理策略为自定义返回时,需要填写。
429
返回 content-type
设置返回内容的格式为普通文本或JSON。
JSON字符串
HTTP 返回文本
输入当Web接口访问触发规则后返回的内容。当Web限流处理策略为自定义返回时,需要填写。
{"message": "blocked oops"}
RPC资源
参数
描述
示例值
行为名称
该行为的名称。长度不超过128个字符,同一个应用内名称不能重复。
测试行为
针对的资源类型
选择为Rpc类型。
说明Apache Dubbo2.7.0到2.7.3版本不支持自定义行为,这些版本限流返回的是
java.lang.RuntimeException
,内容包含SentinelBlockedException
及限流信息。Rpc
Rpc 限流处理策略
定义Rpc接口访问触发某种规则后的行为表现。
自定义返回:自定义返回结果。需设置HTTP返回状态码、返回内容的格式和返回的内容。表示Rpc接口访问触发规则后返回自定义的内容。
自定义异常:抛出自定义异常。需设置异常的类名和异常文本,表示Rpc接口访问触发规则后系统会返回指定的异常信息。
自定义返回/自定义异常
Rpc 限流处理策略为自定义返回
自定义返回类名
填写类名称路径。
说明自定义返回目前不支持对象类型中包含未确定类型的泛型,如Map<K, V>、List<T>等。
com.alibaba.demo.OrderService:getOrder(long)
自定义返回内容(JSON 格式)
填写当Rpc接口访问触发规则时返回结果的对象内容。
{"id": "123", "name": "test"}
Rpc 限流处理策略为自定义异常
异常类名
填写异常类名称路径。
java.lang.RuntimeException
异常信息文本
填写Rpc接口访问触发规则后抛出自定义异常的文本信息。
"Operation failed"
新增的行为会显示在行为管理页面中。
修改或删除行为
登录MSE治理中心控制台,并在顶部菜单栏选择地域。
在左侧导航栏,选择治理中心 > 应用治理。
在应用列表页面,单击目标应用的资源卡片,然后在左侧导航栏单击流量治理。
在流量治理页面,单击流量防护页签,然后单击行为管理页签。
您可以单击目标行为对应操作列下的修改或删除,完成修改或删除行为。
关联行为
在配置各类控制规则时,都可以关联对应的行为,本文以流控规则为例关联目标行为。
登录MSE治理中心控制台,并在顶部菜单栏选择地域。
在左侧导航栏,选择治理中心 > 应用治理。
在应用列表页面,单击目标应用的资源卡片,然后在左侧导航栏单击流量治理。
在流量治理页面,单击流量防护页签,然后单击接口流控页签。
在接口流控页签下单击新增流控规则。
在新增流控防护规则对话框中完成配置。完成选择防护场景和配置防护规则后,在配置防护行为区域,完成下列设置。
在选择防护场景步骤,选择接口类型为WEB服务或RPC服务,然后选择流量类型、接口名称及防护类型。
在配置防护规则步骤,设置单机QPS阈值并选择流控效果。
在配置防护行为步骤,选择关联行为下拉列表中的目标行为进行关联,或单击新增行为来创建新的行为进行关联。
说明如果您不需要自定义限流后的Fallback行为,则选择默认行为即可,默认接口类型为空。
新增规则时,若当前接口已有绑定行为,后续若绑定新的行为则会覆盖接口下已有行为。
选择Fallback行为时,若不选择接口类型,则绑定默认行为;选择接口类型并绑定相应类型行为后,行为类型不可修改,但行为可以修改。
对于 Feign 框架其自身的 Fallback 机制生效,自定义行为不生效。
单击新增。