我有这个脚本,我在其中使用大数据集并使用请求方法和后方法调用远程api。如果我单独执行此请求,则该请求可以正常运行。但是,如果我使用forEach和async / await遍历200条记录的样本集,则只有大约6-15个请求返回状态为200,其他请求返回500错误。
我与API的所有者合作,他们的日志仅显示200个请求。因此,我认为节点实际上并没有发出返回500的节点。
有人遇到过这个问题,和/或知道我如何解决这个问题?
答案 0 :(得分:0)
据我所知,node.js中没有代码可以自动为您做出500 http响应。这500个响应显然来自目标服务器的网络。您可以查看服务器计算机上的网络跟踪以确保确定。
如果它们不在目标服务器日志中,则可能来自于部署在其服务器前的某种防御机制,以阻止滥用或过度使用其服务器(例如来自一个源的速率限制)和/或保护其能够响应大量请求(代理,防火墙,负载均衡器等)的能力。它甚至可能是托管工具中配置的一部分。
您可能需要找出目标服务器将无误地接受多少个并发请求,然后修改您的代码以使一次发送的请求绝不超过该数量。他们还可能在测量请求/秒,因为它不仅可能是运行中的计数,而且可能是发送请求的速率。