在 Node.js 中配置 maxSockets - Amazon SDK for JavaScript
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

Amazon SDK for JavaScript V3 API 参考指南详细描述了 Amazon SDK for JavaScript 版本 3 (V3) 的所有 API 操作。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

在 Node.js 中配置 maxSockets

在 Node.js 中,您可以设置每个源的最大连接数。如果设置了 maxSockets,则低级 HTTP 客户端会将请求排队,并在它们可用时将它们分配给套接字。

这使您可以设置在某个时间对给定源的并发请求数的上限。降低此值可以减少收到的限制或超时错误的数量。但是,它还会增加内存使用量,因为请求进行排队,直到套接字变为可用状态。

以下示例演示了如何为 DynamoDB 客户端设置 maxSockets

import { DynamoDBClient } from "@aws-sdk/client-dynamodb"; import { NodeHttpHandler } from "@smithy/node-http-handler"; import https from "https"; let agent = new https.Agent({ maxSockets: 25 }); let dynamodbClient = new DynamoDBClient({ requestHandler: new NodeHttpHandler({ requestTimeout: 3_000, httpsAgent: agent }); });

如果您不提供maxSockets值或Agent对象,则适用的 SDK 将 JavaScript 使用值 50。如果您提供一个Agent对象,则将使用其maxSockets值。有关maxSockets在 Node.js 中设置的更多信息,请参阅 Node.js 文档

从 v3.521.0 起 Amazon SDK for JavaScript,您可以使用以下速记语法进行配置requestHandler

import { DynamoDBClient } from "@aws-sdk/client-dynamodb"; const client = new DynamoDBClient({ requestHandler: { requestTimeout: 3_000, httpsAgent: { maxSockets: 25 }, }, });