更新时间:2024-12-25 GMT+08:00
分享

配置客户端流控策略

客户端流控策略通常是指在客户端应用中实施的流量控制机制,目的是为了管理客户端与服务器之间的数据传输速率,防止过量的请求对服务器造成压力,同时也保证客户端应用的流畅性,提升用户体验。您可以使用系统预置的流控策略,还可以根据自己的需求自定义创建。

本章节为您介绍如何自定义创建及使用客户端流控策略。

约束与限制

客户端流控策略为Astro Pro企业版功能,如果您需要使用此功能,请升级Astro Pro实例版本

创建客户端流控策略

  1. 参考登录AstroPro界面中操作,登录AstroPro界面。
  2. 在左侧导航栏中,选择后端开发平台 > 资产库 > 客户端流控策略
  3. 在顶部项目下拉框中选择对应项目或工作空间,即设置流控策略的作用范围。

    • 选择对应项目,则流控策略的作用为指定项目,选择工作空间,则流控策略的作用为工作空间内所有项目。
    • 非工作空间管理员仅可创建对应项目的流控策略,具体权限约束可参考了解AstroPro中角色

  4. 在客户端流控策略页面,单击“新建客户端流控策略”
  5. 参考表1配置客户端流控策略的规则。

    表1 配置流控策略

    参数

    参数说明

    客户端流控策略

    必选参数,由英文字母和数字及连字符(-)组成,且只能以英文字母开头,采用驼峰格式。例如,Custom。

    长度范围为2~63位。

    规则名称

    可选参数,仅当勾选了重试、熔断或超时选项后为必填。

    规则名称由英文字母和数字及连字符(-)组成,且只能以英文字母开头,采用驼峰格式。

    长度范围为2~63位。

    重试

    可选参数。

    当一个服务调用失败时,重试机制会自动尝试再次调用该服务,以期能够成功。

    熔断

    可选参数。

    当服务调用连续失败达到一定阈值时,熔断器会“打开”,阻止进一步的调用,从而保护系统不会因为不断尝试调用失败的服务而资源耗尽。

    超时

    可选参数。

    为了防止系统无限期地等待某个操作完成,超时机制会在一定时间后终止等待,返回错误。

    缓存策略

    可选参数。在拉框中选择缓存策略。

    • CACHE_FIRST:当一个请求到来时,系统首先尝试获取缓存。如果缓存存在,判断当前缓存的存在时间是否小于一定时间,小于则直接返回缓存中的数据,否则执行请求下游服务的操作,请求成功,更新缓存,返回结果。请求失败,直接返回获取缓存结果。如果缓存不存在,执行请求下游服务的操作,请求成功,更新缓存,返回结果,请求失败,抛出异常。
    • SERVICE_FIRST:当一个请求到来时,系统直接执行请求下游服务的操作,请求成功,更新缓存,返回结果。请求失败,尝试获取缓存,如果缓存存在,则返回缓存结果,如果缓存不存在,抛出异常。

    缓存管理名称

    在“缓存策略”选择对应策略后,显示该字段,且为必填项。

    输入缓存管理名称。

    缓存管理名称由英文字母和数字及连字符(-)组成,且只能以英文字母开头,采用驼峰格式。

    长度范围为2~63位。

    缓存组件类型

    在“缓存策略”选择对应策略后,显示该字段,且为必填项。

    下拉框中选择缓存组件类型。

    • CAFFEINE:使用CAFFEINE作为缓存的组件(本地缓存)。
    • REDIS:使用Redis作为缓存的组件(分布式缓存)。
      注意:选择使用REDIS类型的前提条件是,服务已开启REDIS外部缓存。
      图1 开启REDIS外部缓存

    描述

    可选参数,输入流控策略的补充描述信息。

  6. 单击“确定”,完成客户端缓存策略创建。

    创建成功后,在服务依赖中添加流控策略时,您可选择自定义的客户端流控策略。

    图2 选择自定义流控策略

使用客户端流控策略

使用客户端流控策略时,需要满足以下三个前置条件:

  • 目录结构必须为DDD。
  • 服务要依赖于其他服务。
  • 依赖类型为METHOD。

例如: 有两个服务分别为A和B, A服务开启了客户端功能(目录结构不做要求),B服务(目录结构为DDD)依赖了A服务,依赖类型为METHOD,此时可以在该依赖上添加已创建的客户端流控策略

  1. 参考登录AstroPro界面中操作,登录AstroPro界面。
  2. 在左侧导航栏中,选择后端开发平台 > 服务管理 > 服务
  3. 选择服务B,单击操作列的编辑,进入服务编辑页面。
  4. 单击“服务依赖”,添加服务A为服务依赖。
  5. 选择“客户端依赖类型”“METHOD”
  6. 单击已添加服务依赖后的“编辑”
  7. 选择需配置流控策略的对象方法,并为对象方法添加对应的流控策略。例如自定义流控策略Custom。

    图3 配置客户端流控策略

  8. 单击“保存”,完成客户端流控策略配置。
  9. 单击“创建”,生成服务代码,代码中的配置文件将添加客户端流控策略配置信息。

    图4 配置文件
    图5 流控策略的注解

编辑客户端流程策略

  1. 参考登录AstroPro界面中操作,登录AstroPro界面。
  2. 在左侧导航栏中,选择后端开发平台 > 资产库 > 客户端流控策略
  3. 在客户端流控策略列表中选中待操作的策略,单击“操作”列的“编辑”
  4. 参考表1配置客户端流控策略的规则。

    表2 配置流控策略

    参数

    参数说明

    客户端流控策略

    必选参数,由英文字母和数字及连字符(-)组成,且只能以英文字母开头,采用驼峰格式。例如,Custom。

    长度范围为2~63位。

    规则名称

    可选参数,仅当勾选了重试、熔断或超时选项后为必填。

    规则名称由英文字母和数字及连字符(-)组成,且只能以英文字母开头,采用驼峰格式。

    长度范围为2~63位。

    重试

    可选参数。

    当一个服务调用失败时,重试机制会自动尝试再次调用该服务,以期能够成功。

    熔断

    可选参数。

    当服务调用连续失败达到一定阈值时,熔断器会“打开”,阻止进一步的调用,从而保护系统不会因为不断尝试调用失败的服务而资源耗尽。

    超时

    可选参数。

    为了防止系统无限期地等待某个操作完成,超时机制会在一定时间后终止等待,返回错误。

    缓存策略

    可选参数。在拉框中选择缓存策略。

    • CACHE_FIRST:当一个请求到来时,系统首先尝试获取缓存。如果缓存存在,判断当前缓存的存在时间是否小于一定时间,小于则直接返回缓存中的数据,否则执行请求下游服务的操作,请求成功,更新缓存,返回结果。请求失败,直接返回获取缓存结果。如果缓存不存在,执行请求下游服务的操作,请求成功,更新缓存,返回结果,请求失败,抛出异常。
    • SERVICE_FIRST:当一个请求到来时,系统直接执行请求下游服务的操作,请求成功,更新缓存,返回结果。请求失败,尝试获取缓存,如果缓存存在,则返回缓存结果,如果缓存不存在,抛出异常。

    缓存管理名称

    在“缓存策略”选择对应策略后,显示该字段,且为必填项。

    输入缓存管理名称。

    缓存管理名称由英文字母和数字及连字符(-)组成,且只能以英文字母开头,采用驼峰格式。

    长度范围为2~63位。

    缓存组件类型

    在“缓存策略”选择对应策略后,显示该字段,且为必填项。

    下拉框中选择缓存组件类型。

    • CAFFEINE:使用CAFFEINE作为缓存的组件(本地缓存)。
    • REDIS:使用Redis作为缓存的组件(分布式缓存)。
      注意:选择使用REDIS类型的前提条件是,服务已开启REDIS外部缓存。
      图6 开启REDIS外部缓存

    描述

    可选参数,输入流控策略的补充描述信息。

  5. 单击“确定”,完成客户端流控策略编辑。

单个删除客户端流程策略

  1. 参考登录AstroPro界面中操作,登录AstroPro界面。
  2. 在左侧导航栏中,选择后端开发平台 > 资产库 > 客户端流控策略
  3. 在客户端流控策略列表中选中待删除的策略,单击“操作”列的“删除”
  4. 在弹框中单击“确认”,完成客户端流控策略单个删除。

    删除后无法恢复,请谨慎操作。

批量删除客户端流程策略

  1. 参考登录AstroPro界面中操作,登录AstroPro界面。
  2. 在左侧导航栏中,选择后端开发平台 > 资产库 > 客户端流控策略
  3. 在客户端流控策略列表中勾选待删除的策略,单击“批量删除”
  4. 在弹框中单击“确认”,完成客户端流控策略批量删除。

    删除后无法恢复,请谨慎操作。

相关文档