配置客户端流控策略
客户端流控策略通常是指在客户端应用中实施的流量控制机制,目的是为了管理客户端与服务器之间的数据传输速率,防止过量的请求对服务器造成压力,同时也保证客户端应用的流畅性,提升用户体验。您可以使用系统预置的流控策略,还可以根据自己的需求自定义创建。
本章节为您介绍如何自定义创建及使用客户端流控策略。
客户端流控策略为Astro Pro企业版功能,如果您需要使用此功能,请升级Astro Pro实例版本。
创建客户端流控策略
- 参考登录AstroPro界面中操作,登录AstroPro界面。
- 在左侧导航栏中,选择 。
- 在顶部项目下拉框中选择对应项目或工作空间,即设置流控策略的作用范围。
- 选择对应项目,则流控策略的作用为指定项目,选择工作空间,则流控策略的作用为工作空间内所有项目。
- 非工作空间管理员仅可创建对应项目的流控策略,具体权限约束可参考了解AstroPro中角色。
- 在客户端流控策略页面,单击“新建客户端流控策略”。
- 参考表1配置客户端流控策略的规则。
表1 配置流控策略 参数
参数说明
客户端流控策略
必选参数,由英文字母和数字及连字符(-)组成,且只能以英文字母开头,采用驼峰格式。例如,Custom。
长度范围为2~63位。
规则名称
可选参数,仅当勾选了重试、熔断或超时选项后为必填。
规则名称由英文字母和数字及连字符(-)组成,且只能以英文字母开头,采用驼峰格式。
长度范围为2~63位。
重试
可选参数。
当一个服务调用失败时,重试机制会自动尝试再次调用该服务,以期能够成功。
熔断
可选参数。
当服务调用连续失败达到一定阈值时,熔断器会“打开”,阻止进一步的调用,从而保护系统不会因为不断尝试调用失败的服务而资源耗尽。
超时
可选参数。
为了防止系统无限期地等待某个操作完成,超时机制会在一定时间后终止等待,返回错误。
缓存策略
可选参数。在拉框中选择缓存策略。
- CACHE_FIRST:当一个请求到来时,系统首先尝试获取缓存。如果缓存存在,判断当前缓存的存在时间是否小于一定时间,小于则直接返回缓存中的数据,否则执行请求下游服务的操作,请求成功,更新缓存,返回结果。请求失败,直接返回获取缓存结果。如果缓存不存在,执行请求下游服务的操作,请求成功,更新缓存,返回结果,请求失败,抛出异常。
- SERVICE_FIRST:当一个请求到来时,系统直接执行请求下游服务的操作,请求成功,更新缓存,返回结果。请求失败,尝试获取缓存,如果缓存存在,则返回缓存结果,如果缓存不存在,抛出异常。
缓存管理名称
在“缓存策略”选择对应策略后,显示该字段,且为必填项。
输入缓存管理名称。
缓存管理名称由英文字母和数字及连字符(-)组成,且只能以英文字母开头,采用驼峰格式。
长度范围为2~63位。
缓存组件类型
在“缓存策略”选择对应策略后,显示该字段,且为必填项。
下拉框中选择缓存组件类型。
- CAFFEINE:使用CAFFEINE作为缓存的组件(本地缓存)。
- REDIS:使用Redis作为缓存的组件(分布式缓存)。
说明:选择使用REDIS类型的前提条件是,服务已开启REDIS外部缓存。图1 开启REDIS外部缓存
描述
可选参数,输入流控策略的补充描述信息。
- 单击“确定”,完成客户端缓存策略创建。
创建成功后,在服务依赖中添加流控策略时,您可选择自定义的客户端流控策略。
图2 选择自定义流控策略
使用客户端流控策略
使用客户端流控策略时,需要满足以下三个前置条件:
- 目录结构必须为DDD。
- 服务要依赖于其他服务。
- 依赖类型为METHOD。
例如: 有两个服务分别为A和B, A服务开启了客户端功能(目录结构不做要求),B服务(目录结构为DDD)依赖了A服务,依赖类型为METHOD,此时可以在该依赖上添加已创建的客户端流控策略。
- 参考登录AstroPro界面中操作,登录AstroPro界面。
- 在左侧导航栏中,选择 。
- 选择服务B,单击操作列的编辑,进入服务编辑页面。
- 单击“服务依赖”,添加服务A为服务依赖。
- 选择“客户端依赖类型”为“METHOD”。
- 单击已添加服务依赖后的“编辑”。
- 选择需配置流控策略的对象方法,并为对象方法添加对应的流控策略。例如自定义流控策略Custom。
图3 配置客户端流控策略
- 单击“保存”,完成客户端流控策略配置。
- 单击“创建”,生成服务代码,代码中的配置文件将添加客户端流控策略配置信息。
图4 配置文件
图5 流控策略的注解
编辑客户端流程策略
- 参考登录AstroPro界面中操作,登录AstroPro界面。
- 在左侧导航栏中,选择 。
- 在客户端流控策略列表中选中待操作的策略,单击“操作”列的“编辑”。
- 参考表1配置客户端流控策略的规则。
表2 配置流控策略 参数
参数说明
客户端流控策略
必选参数,由英文字母和数字及连字符(-)组成,且只能以英文字母开头,采用驼峰格式。例如,Custom。
长度范围为2~63位。
规则名称
可选参数,仅当勾选了重试、熔断或超时选项后为必填。
规则名称由英文字母和数字及连字符(-)组成,且只能以英文字母开头,采用驼峰格式。
长度范围为2~63位。
重试
可选参数。
当一个服务调用失败时,重试机制会自动尝试再次调用该服务,以期能够成功。
熔断
可选参数。
当服务调用连续失败达到一定阈值时,熔断器会“打开”,阻止进一步的调用,从而保护系统不会因为不断尝试调用失败的服务而资源耗尽。
超时
可选参数。
为了防止系统无限期地等待某个操作完成,超时机制会在一定时间后终止等待,返回错误。
缓存策略
可选参数。在拉框中选择缓存策略。
- CACHE_FIRST:当一个请求到来时,系统首先尝试获取缓存。如果缓存存在,判断当前缓存的存在时间是否小于一定时间,小于则直接返回缓存中的数据,否则执行请求下游服务的操作,请求成功,更新缓存,返回结果。请求失败,直接返回获取缓存结果。如果缓存不存在,执行请求下游服务的操作,请求成功,更新缓存,返回结果,请求失败,抛出异常。
- SERVICE_FIRST:当一个请求到来时,系统直接执行请求下游服务的操作,请求成功,更新缓存,返回结果。请求失败,尝试获取缓存,如果缓存存在,则返回缓存结果,如果缓存不存在,抛出异常。
缓存管理名称
在“缓存策略”选择对应策略后,显示该字段,且为必填项。
输入缓存管理名称。
缓存管理名称由英文字母和数字及连字符(-)组成,且只能以英文字母开头,采用驼峰格式。
长度范围为2~63位。
缓存组件类型
在“缓存策略”选择对应策略后,显示该字段,且为必填项。
下拉框中选择缓存组件类型。
- CAFFEINE:使用CAFFEINE作为缓存的组件(本地缓存)。
- REDIS:使用Redis作为缓存的组件(分布式缓存)。
说明:选择使用REDIS类型的前提条件是,服务已开启REDIS外部缓存。图6 开启REDIS外部缓存
描述
可选参数,输入流控策略的补充描述信息。
- 单击“确定”,完成客户端流控策略编辑。
单个删除客户端流程策略
- 参考登录AstroPro界面中操作,登录AstroPro界面。
- 在左侧导航栏中,选择 。
- 在客户端流控策略列表中选中待删除的策略,单击“操作”列的“删除”。
- 在弹框中单击“确认”,完成客户端流控策略单个删除。
删除后无法恢复,请谨慎操作。
批量删除客户端流程策略
- 参考登录AstroPro界面中操作,登录AstroPro界面。
- 在左侧导航栏中,选择 。
- 在客户端流控策略列表中勾选待删除的策略,单击“批量删除”。
- 在弹框中单击“确认”,完成客户端流控策略批量删除。
删除后无法恢复,请谨慎操作。