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

适用于 JavaScript 的 Amazon SDKV3 API 参考指南详细描述了 适用于 JavaScript 的 Amazon SDK 版本 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 }); });

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

从适用于 JavaScript 的 Amazon SDK v3.521.0 起,您可以使用以下速记语法配置 requestHandler

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