在 Node.js 中使用保持活动状态的连接 - AWS SDK for JavaScript

帮助我们改进AWS SDK for JavaScript版本 3 (V3) 文档,方法是使用反馈链接,或者在上创建议题或拉取请求GitHub.

这些区域有:AWS SDK for JavaScriptV3 API 参考指南详细描述了所有的 API 操作AWS SDK for JavaScript版本 3 (V3)。

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

在 Node.js 中使用保持活动状态的连接

默认的 Node.js HTTP/HTTPS 代理会为每个新请求创建一个新的 TCP 连接。为了避免建立新连接的成本,开发工具包用于 JavaScript 重用 TCP 连接。

对于短期操作(如 Amazon DynamoDB 查询),设置 TCP 连接的延迟开销可能大于操作本身。此外,自 DynamoDB静态加密已与集成AWS KMS,您可能会遇到数据库的延迟,必须重新建立新的AWS KMS每个操作的缓存条目。

要禁用重复使用 TCP 连接,请将AWS_NODEJS_CONNECTION_REUSE_ENABLED环境变量false(默认值为true)。

您还可以禁用基于每个服务客户端使这些连接保持活动状态,如以下 DynamoDB 客户端的示例所示。

import { DynamoDBClient } from "@aws-sdk/client-dynamodb"; import { NodeHttpHandler } from "@aws-sdk/node-http-handler"; import { Agent } from "http"; const dynamodbClient = new DynamoDBClient({ requestHandler: new NodeHttpHandler({ httpAgent: new Agent({keepAlive: false}) }) });

如果keepAlive已启用,您还可以使用设置 TCP Keep-Alive 数据包的初始延迟。keepAliveMsecs,默认情况下为 1000 毫秒。有关详细信息,请参阅 Node.js 文档