Node.js Etimeout解决方案

在压测朋友圈服务的时候,因为接入了易盾的敏感词检测是http的请求,在TPS数百的时候,服务内部大量报错了 ETIMEOUT 的错误;
image.png

在Node.js中可以在程序的入口文件类似 server.ts | app.ts 或者 入口文件 中 插入以下代码:

process.env.UV_THREADPOOL_SIZE = '128'

但可以在启动时通过将UV_THREADPOOL_SIZE环境变量设置为任何值来更改它 (最大值为 1024)。

Node.js默认该值为4。

因为在DNS解析需要花大量时间的,导致了阻塞,这个时候会返回etimeout的错误。

在设置 UV_THREADPOOL_SIZE 属性之前 ,有近1%的请求是因为etimeout返回了http code 为 500的错误。
Node.js Etimeout解决方案_第1张图片
设置之后:

该问题得到了解决。

Node.js Etimeout解决方案_第2张图片

参考资料:

https://stackoverflow.com/que...

你可能感兴趣的:(node.js)