配置行为

当监控的Web资源或RPC资源由于达到预设的流控阈值、触发熔断机制或者执行降级规则时,Fallback行为将被激活以提供备选处理逻辑。对于Web资源,通常会配置一个备用控制器或处理器来返回友好的提示信息,或者执行其他替代操作,而不是直接抛出异常或响应错误状态码。而对于RPC资源,Fallback行为则表现为调用本地的回退方法代替远程服务调用,防止因远程服务不可用而导致整个调用链路中断。

前提条件

新增行为

  1. 登录MSE治理中心控制台,并在顶部菜单栏选择地域。

  2. 在左侧导航栏,选择治理中心 > 应用治理

  3. 应用列表页面,单击目标应用的资源卡片,然后在左侧导航栏单击流量治理

  4. 流量治理页面,单击流量防护页签,然后单击行为管理页签。

  5. 单击新增行为,在新增行为对话框中选择资源类型并完成对应配置,然后单击新建

    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"

    新增的行为会显示在行为管理页面中。

修改或删除行为

  1. 登录MSE治理中心控制台,并在顶部菜单栏选择地域。

  2. 在左侧导航栏,选择治理中心 > 应用治理

  3. 应用列表页面,单击目标应用的资源卡片,然后在左侧导航栏单击流量治理

  4. 流量治理页面,单击流量防护页签,然后单击行为管理页签。

  5. 您可以单击目标行为对应操作列下的修改删除,完成修改或删除行为。

关联行为

在配置各类控制规则时,都可以关联对应的行为,本文以流控规则为例关联目标行为。

  1. 登录MSE治理中心控制台,并在顶部菜单栏选择地域。

  2. 在左侧导航栏,选择治理中心 > 应用治理

  3. 应用列表页面,单击目标应用的资源卡片,然后在左侧导航栏单击流量治理

  4. 流量治理页面,单击流量防护页签,然后单击接口流控页签。

  5. 接口流控页签下单击新增流控规则

  6. 新增流控防护规则对话框中完成配置。完成选择防护场景配置防护规则后,在配置防护行为区域,完成下列设置。

    1. 选择防护场景步骤,选择接口类型WEB服务RPC服务,然后选择流量类型接口名称防护类型

    2. 配置防护规则步骤,设置单机QPS阈值并选择流控效果

    3. 配置防护行为步骤,选择关联行为下拉列表中的目标行为进行关联,或单击新增行为来创建新的行为进行关联。

    说明
    • 如果您不需要自定义限流后的Fallback行为,则选择默认行为即可,默认接口类型为空。

    • 新增规则时,若当前接口已有绑定行为,后续若绑定新的行为则会覆盖接口下已有行为。

    • 选择Fallback行为时,若不选择接口类型,则绑定默认行为;选择接口类型并绑定相应类型行为后,行为类型不可修改,但行为可以修改。

    • 对于 Feign 框架其自身的 Fallback 机制生效,自定义行为不生效。

  7. 单击新增