RPC行为可以在RPC类型埋点资源触发了某种规则后,返回相应的自定义的处理行为,例如某个RPC接口触发流控规则后返回自定义的接口返回值。本文介绍如何新增、修改、删除和关联RPC行为。

前提条件

  • 将应用接入AHAS应用防护。具体操作,请参见接入应用方式
  • RPC Fallback行为仅支持AHAS Sentinel Java SDK 1.9.5及以上版本以及Java Agent 1.10.1及以上版本。
  • RPC行为在AHAS SDK 1.9.5~1.10.3版本仅支持在Dubbo类型接口下生效,在AHAS SDK 1.10.4及以上版本支持Dubbo、HSF、SOFARPC类型接口。
  • RPC行为暂不支持其他多语言SDK方式接入。

背景信息

配置行为主要是配置Fallback行为。Fallback行为定义某个埋点资源触发了某种规则(如流控、熔断、降级)后的处理行为。目前Fallback行为仅支持Web和RPC两种资源类型。本文介绍Fallback行为中RPC行为的配置方法。

在AHAS SDK 1.10.4及以上版本,RPC行为支持返回值包含未确定类型的泛型、自动探测接口方法返回类型。
注意
  • 返回值类名中不允许存在接口、抽象类,请使用相应具体继承类型。
  • 返回值若包含未确定类型的泛型,需要在类名中确定其相应的具化类型。
  • 自动探测模式仅支持Dubbo、HSF类型接口。

新增行为

  1. 登录AHAS控制台,然后在页面左上角选择地域。
  2. 在控制台左侧导航栏中选择流量防护 > 应用防护
  3. 应用防护页面单击目标应用卡片。
  4. 在左侧导航栏选择应用管理,然后单击行为管理页签。
  5. 单击新增行为,在新增行为对话框中完成以下配置。
    fh
    参数 描述 示例值
    行为名称 该行为的名称。长度不超过128个字符,同个应用内名称不能重复。 测试行为
    针对的资源类型 包括Web和RPC两种类型,此处选择RPC类型。 RPC
    缓存实例 是否缓存返回值。若开启,则会缓存生成的Fallback对象,在该行为触发时,均复用同一对象。 开启
    RPC限流处理策略 定义RPC接口访问触发某种规则后的行为表现。目前支持以下两种策略:
    • 自定义返回:自定义返回结果。需设置返回类型和返回的内容,表示RPC接口访问触发规则后返回自定义的实体类。
    • 自定义异常:抛出自定义异常。需设置异常的类名和异常文本,表示RPC接口访问触发规则后系统会返回指定的异常信息。
    自定义返回
    返回类型获取方式 填充返回值类名的方式,分别为:
    • 手动输入:选择手动输入模式,需要填写自定义返回值的全限定类名(返回值类名),然后单击校验进行有效性校验,校验通过后可以创建行为。
    • 自动探测:选择自动探测模式,需要选择创建RPC行为的接口方法(行为关联方法),控制台会根据选择的行为关联方法,自动填充方法返回值类名,然后填写完成对象内容(JSON格式)后可以创建行为。 AHAS SDK 1.10.4及以上版本支持使用自动探测功能。
    注意 如果当前接口方法返回值包含未具化的参数类型,需要手动填写泛型的具体类型,通过校验后即可以在控制台创建行为。
    手动输入
    行为关联方法 返回类型获取方式自动探测时,需要选择当前RPC行为关联的接口方法,方法返回值类型即为当前自定义返回值的类型。 com.alibaba.demo.RpcResult
    返回值类名 选择RPC限流处理策略为自定义返回时,需填写的类名称路径。
    说明 自定义返回目前不支持对象类型中包含未确定类型的泛型,如Map<K, V>、List<T>等。
    com.alibaba.demo.OrderService:getOrder(long)
    对象内容(JSON格式) 选择RPC限流处理策略为自定义返回时,填写当RPC接口访问触发规则时返回结果的对象内容(JSON格式)。 {"id": "123", "name": "test"}
    异常类名 选择RPC限流处理策略为自定义异常时,需填写的异常类名称路径。 java.lang.RuntimeException
    异常信息文本 选择RPC限流处理策略为自定义异常时,填写RPC接口访问触发规则后抛出自定义异常的文本信息。
    说明 当前异常仅支持包含String类型构建函数的异常类。
    "Operation failed"
  6. 单击校验
    说明 RPC行为的数据结构需要与客户端相应接口的数据结构保持一致。因此,新增RPC行为时,需完成数据类型的校验才能完成创建。校验失败时可以根据相应异常信息提示进行修改。
  7. 单击新建
    新增的行为会显示在应用管理页面的行为管理页签中。

修改或删除行为

  1. 登录AHAS控制台,然后在页面左上角选择地域。
  2. 在控制台左侧导航栏中选择流量防护 > 应用防护
  3. 应用防护页面单击目标应用卡片。
  4. 在左侧导航栏选择应用管理,然后单击行为管理页签。
    在行为列表页,您可以查看各个行为的具体描述,修改或删除行为。

关联行为

  1. 登录AHAS控制台,然后在页面左上角选择地域。
  2. 在控制台左侧导航栏中选择流量防护 > 应用防护
  3. 应用防护页面单击目标应用卡片。
  4. 选择以下任意一种方式进入新增流控防护规则页面:
    • 在左侧导航栏单击接口详情后,在RPC服务页签下单击目标接口卡片右上角的设置图标图标进入管理规则页面,然后单击新增流控规则
    • 在左侧导航栏单击规则管理,然后在流控规则页签下单击新增流控规则
  5. 完成选择防护场景和配置防护规则后,在配置限流行为区域,完成下列设置。
    1. 选择接口类型Rpc
    2. 关联行为的下拉列表中选择目标行为进行关联,或单击新增行为来创建新的行为进行关联。
    说明
    • 如果您不需要自定义限流后的Fallback行为,则选择默认行为即可,默认接口类型为空。
    • 新增规则时,若当前接口已有绑定行为,后续若绑定新的行为则会覆盖接口下已有的行为。
    • 选择Fallback类型时,若不选择接口类型,则绑定默认行为;选择接口类型并绑定相应类型行为后,不可修改。
  6. 单击下一步后,单击新增