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

Node.js与Express中如何实现API的Round Robin轮询调用功能

双目标轮询API实现方案

实现逻辑

利用Node.js模块单例特性,在模块顶层定义计数器,该变量会在多次接口请求之间持久保存状态,不会随每次请求重置。每次请求触发时计数器自增,通过对2取模的结果判断当前应返回的目标链接,即可实现交替轮询的效果。

完整代码实现

const asyncHandler = require('express-async-handler');
var link1 = "http://link1";
var link2 = "http://link2";
// 模块顶层声明计数器,跨请求保持状态
let requestCount = 0;

exports.newApi = asyncHandler(async (req, res, next) => {
  requestCount++;
  // 奇数请求返回link1,偶数请求返回link2
  const data = requestCount % 2 === 1 ? link1 : link2;
  // 此处可添加调用对应链接获取业务数据的逻辑
  res.status(200).json({success: true, data});
})

高并发/多部署场景优化

如果服务存在高并发请求,或者是多实例分布式部署,内存计数会出现轮询不准的问题,可按需调整:

  • 采用Redis等共享存储持久化计数器,保证多实例间计数逻辑统一
  • 计数器更新使用原子操作接口,避免并发请求下的计数冲突

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 09:39:01