You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WSO2 APIM 4.0.0集群环境下Maximum Backend Throughput不生效问题

问题原因分析

WSO2 APIM 4.0.0中,Subscription Level Rate Limiting由Traffic Manager(TM)节点统一协调计数与限流决策,天然支持集群分布式生效;但Maximum Backend Throughput的限流逻辑默认在网关本地维护计数器,即便集群配置正确,若未指定分布式计数存储,每个网关节点会独立统计自身流量,最终导致后端接收总流量超出预期10倍。

解决步骤

要让后端吞吐量限制在集群中全局生效,需配置网关使用分布式计数存储,具体操作如下:

1. 选择分布式计数存储类型

支持JDBC(共享数据库)或Redis两种主流方案,可根据集群环境选择:

方案一:JDBC共享数据库

在每个网关节点的<APIM_GW_HOME>/conf/deployment.toml中添加配置:

[apim.throttling]
enable_data_publishing = true

[apim.throttling.jdbc]
enabled = true
datasource = "WSO2AM_DB"

确保所有网关节点连接同一个WSO2AM_DB实例(需为MySQL、PostgreSQL等支持多节点并发读写的数据库)。

方案二:Redis分布式缓存

在每个网关节点的<APIM_GW_HOME>/conf/deployment.toml中添加配置:

[apim.throttling]
enable_data_publishing = true

[apim.throttling.redis]
enabled = true
host = "REDIS_HOST"
port = REDIS_PORT
password = "REDIS_PASSWORD" # 有密码时添加
database = 0 # 可选,指定Redis数据库编号

确保所有网关节点连接同一个Redis集群/实例。

2. 验证配置生效

  • 重启所有网关节点
  • 对目标API发起并发流量,检查后端接收总流量是否符合配置的吞吐量限制
  • 查看网关日志<APIM_GW_HOME>/logs/wso2carbon.log,确认分布式计数存储的连接成功日志

额外注意事项

  • 确保Traffic Manager节点的<APIM_TM_HOME>/conf/deployment.toml已开启流量数据接收:
    [apim.throttling]
    enable_data_receiving = true
    
  • JDBC方案需保证数据库性能足够支撑多网关节点的并发计数写入,避免成为瓶颈
  • Redis方案建议开启持久化,防止重启后计数丢失

内容的提问来源于stack exchange,提问作者Sergei Tarasov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 17:35:54