调用DescribeDBInstancePerformance接口报400或503错误

更新时间:

问题描述


调用RDS的DescribeDBInstancePerformance接口报错。错误信息如下:

HTTP Status: 400 
Error: Throttling Request was denied due to request throttling.
RequestID: CC2753EE-6087-49C8-BCEF-A28643C3E41A
HTTP Status: 503 
Error: ServiceUnavailable The request has failed due to a temporary failure of the server.
RequestID: CFDA741B-48DF-4005-9AF5-B4007A190071


问题原因

DescribeDBInstancePerformance接口默认限制同一个用户每分钟最多调用400次,超过该次数就会被限流,导致出现上面的错误。


解决方案

您可以调整该接口的限流策略,防止再次出现该情况。

操作步骤

本步骤以企业版3.16为例进行演示,其他版本大同小异。

  1. 登录服务角色为OpenApi#redline-perf实例终端。
    1. 登录天基系统
    2. 在页面左侧导航栏中,单击工具 > 运维工具 > 机器运维工具
    3. 单击页面左上角的服务页签,单击redline-perf服务。您可以在搜索框中输入redline-perf关键词以快速查找。
    4. 在页面左下方的服务实例区域中,找到前缀为RedlinePerf的服务实例,单击其右侧的 > Dashboard
    5. 服务角色列表区域中,单击OpenApi#服务角色右侧操作列的详情
    6. 机器信息区域中,单击目标机器右侧操作列的终端,并在跳转后的TerminalService页面左侧单击机器名称,即可进入实例的终端页面。您需要依次登录机器信息区域中所有的主机终端,执行下述操作。
  2. 进入redline-perf.openApi的Docker。
    1. 在终端中输入docker ps命令,查找前缀为redline-perf.openApi的Docker。
    2. 记录该Docker的CONTAINER ID,即该Docker的容器ID。
    3. 在终端中输入docker exec -it <上一步获取的容器ID> /bin/bash命令登录Docker。
  3. 修改DescribeDBInstancePerformance.xml文件增加触发限流的访问次数。
    1. 在终端中输入vi /home/admin/dll-service-aliyun-com/batch/apis/DescribeDBInstancePerformance.xml打开接口的xml文件,按i键开启编辑模式。
    2. 在文件最下面找到FlowControl字段,修改该字段的userDefault值为5000apiDefault值为600000,按ESC键,输入:wq保存并退出。
  4. 应用变更。
    1. 在终端中输入cd batch进入batch目录。
    2. 在终端中输入/opt/taobao/install/ajdk_8.10.15_fp10/bin/java -jar /home/admin/dll-service-aliyun-com/batch/batch.jar命令,屏幕中出现batch exe success即代表变更成功。

适用于

  • 版本:专有云企业版
  • 产品:RDS