跨NodeJS中的多个提取命令进行Keepalive

我们的NodeJS应用程序基本上是一个代理:它接受来自客户端A的传入HTTP GET请求,并向后端HTTP服务器B发出上游请求,将从B接收到的数据映射到适合A的形式。每个客户端请求导致对服务器B的单个请求。

为了最大化性能,我们希望在连续的客户端请求之间保持与B的TCP连接保持活动状态。因此,如果客户端A,X,Y和Z都在10秒之内击中了我们的应用程序,我们希望在单个TCP连接中将所有4个请求代理回B。

我们如何在多个传入的客户端请求中重复使用相同的TCP连接(或提取命令)?

我们正在使用Node 12和最新的ExpressJS。

lgm19881113 回答:跨NodeJS中的多个提取命令进行Keepalive

您可以使用keepAlive: true配置an HTTP agent并在多个请求之间共享它,以便代理可以在多个请求之间重用TCP连接。如果确实只需要一个连接,则可以使用maxSockets: 1选项,但是最好有更多连接,以防止飞行中的请求阻止其他请求。

此外,agentkeepalive package可以很好地替代Node.js标准库中的HTTP代理,并且提供了有关如何使用它的自述文件。

本文链接:https://www.f2er.com/3133608.html

大家都在问