如何定制WSO2 Business Plans?业务计划请求限制生效异常排查
WSO2 自定义Business Plans配置及限流失效问题解决
定制WSO2 Business Plans的步骤
- 登录API Publisher控制台,打开目标API的发布页面
- 切换到Business Plans标签,点击Add Business Plan创建新计划
- 填写计划名称、描述,选择该计划适用的API范围
- 在Rate Limiting区域设置限流规则:选择时间窗口(如Daily),输入请求次数阈值,配置限流触发后的处理方式(如返回429状态码)
- 分配订阅权限:指定可订阅该计划的用户角色,或设置为公开订阅
- 保存配置并重新发布API,使新的Business Plan生效
多节点负载均衡场景下每日限流未生效的排查方案
针对3台服务器+负载均衡器的部署场景,限流失效大多源于节点间限流计数未同步,按以下步骤排查修复:
启用分布式限流配置
所有WSO2节点需开启分布式限流并共享计数存储,修改每个节点的<APIM_HOME>/repository/conf/deployment.toml:[apim.throttling] enable_distributed_throttling = true # 可选Redis或JDBC作为共享存储,以下是Redis示例 [apim.throttling.distributed] type = "redis" redis.host = "你的Redis服务器地址" redis.port = 6379 redis.password = "你的Redis密码(如果有)"若使用JDBC,需将所有节点指向同一数据库实例,并配置对应的JDBC连接参数。
调整负载均衡器配置
- 关闭负载均衡器的会话粘性,确保请求能均匀分发到所有节点,避免单节点计数累积
- 配置负载均衡器传递
X-Forwarded-For请求头,保证WSO2能正确识别客户端IP,基于IP维度的限流才能准确计数
验证订阅与计划绑定
- 确认订阅目标API的应用已关联你创建的自定义Business Plan,而非默认的限流计划
- 在API Publisher的Subscriptions标签页核对订阅记录的计划名称是否正确
检查限流统计同步情况
登录任意节点的Carbon控制台,进入Throttling > Throttle Statistics,查看各节点的请求计数是否一致。若计数差异明显,说明分布式存储同步存在问题,需检查Redis/JDBC连接是否正常。
内容的提问来源于stack exchange,提问作者Sulaiman Sadoon
相关产品推荐
相关产品推荐

