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类型接口。
新增行为
- 登录AHAS控制台,然后在页面左上角选择地域。
- 在控制台左侧导航栏中选择 。
- 在应用防护页面单击目标应用卡片。
- 在左侧导航栏选择应用管理,然后单击行为管理页签。
- 单击新增行为,在新增行为对话框中完成以下配置。
参数 描述 示例值 行为名称 该行为的名称。长度不超过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" - 单击校验。说明 RPC行为的数据结构需要与客户端相应接口的数据结构保持一致。因此,新增RPC行为时,需完成数据类型的校验才能完成创建。校验失败时可以根据相应异常信息提示进行修改。
- 单击新建。新增的行为会显示在应用管理页面的行为管理页签中。
修改或删除行为
- 登录AHAS控制台,然后在页面左上角选择地域。
- 在控制台左侧导航栏中选择 。
- 在应用防护页面单击目标应用卡片。
- 在左侧导航栏选择应用管理,然后单击行为管理页签。在行为列表页,您可以查看各个行为的具体描述,修改或删除行为。
关联行为
- 登录AHAS控制台,然后在页面左上角选择地域。
- 在控制台左侧导航栏中选择 。
- 在应用防护页面单击目标应用卡片。
- 选择以下任意一种方式进入新增流控防护规则页面:
- 在左侧导航栏单击接口详情后,在RPC服务页签下单击目标接口卡片右上角的图标进入管理规则页面,然后单击新增流控规则。
- 在左侧导航栏单击规则管理,然后在流控规则页签下单击新增流控规则。
- 完成选择防护场景和配置防护规则后,在配置限流行为区域,完成下列设置。
- 选择接口类型为Rpc。
- 在关联行为的下拉列表中选择目标行为进行关联,或单击新增行为来创建新的行为进行关联。
说明- 如果您不需要自定义限流后的Fallback行为,则选择默认行为即可,默认接口类型为空。
- 新增规则时,若当前接口已有绑定行为,后续若绑定新的行为则会覆盖接口下已有的行为。
- 选择Fallback类型时,若不选择接口类型,则绑定默认行为;选择接口类型并绑定相应类型行为后,不可修改。
- 单击下一步后,单击新增。
文档内容是否对您有帮助?