View a markdown version of this page

Verbindungen mit Keep-Alive in wiederverwenden Node.js - AWS SDK für JavaScript

Die AWS SDK für JavaScript Version 2 hat das Ende des Supports erreicht. Wir empfehlen Ihnen, auf Version 3 zu AWS SDK für JavaScript migrieren. Weitere Einzelheiten und Informationen zur Migration finden Sie in dieser Ankündigung.

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verbindungen mit Keep-Alive in wiederverwenden Node.js

Standardmäßig erstellt der Node.js HTTP/HTTPS Standardagent für jede neue Anfrage eine neue TCP-Verbindung. Um die Kosten für den Aufbau einer neuen Verbindung zu vermeiden, können Sie eine vorhandene Verbindung wiederverwenden.

Bei kurzlebigen Vorgängen, z. B. DynamoDB-Abfragen, ist der Latenzaufwand beim Einrichten einer TCP-Verbindung möglicherweise höher als der Vorgang selbst. Da DynamoDB-Verschlüsselung im Ruhezustand in AWS KMS integriert ist, kann es außerdem zu Latenzen kommen, weil die Datenbank für jeden Vorgang neue AWS KMS Cacheeinträge einrichten muss.

Die einfachste Methode, das SDK für die Wiederverwendung von TCP-Verbindungen JavaScript zu konfigurieren, besteht darin, die AWS_NODEJS_CONNECTION_REUSE_ENABLED Umgebungsvariable auf zu setzen. 1 Diese Funktion wurde in der Version 2.463.0 hinzugefügt.

Alternativ können Sie die keepAlive-Eigenschaft eines HTTP- oder HTTPS-Agenten auf true festlegen, wie im folgenden Beispiel gezeigt.

const AWS = require('aws-sdk'); // http or https const http = require('http'); const agent = new http.Agent({ keepAlive: true, // Infinity is read as 50 sockets maxSockets: Infinity }); AWS.config.update({ httpOptions: { agent } });

Das folgende Beispiel zeigt, wie nur keepAlive für einen DynamoDB-Client festgelegt wird:

const AWS = require('aws-sdk') // http or https const https = require('https'); const agent = new https.Agent({ keepAlive: true }); const dynamodb = new AWS.DynamoDB({ httpOptions: { agent } });

Wenn keepAlive aktiviert, können Sie auch die Anfangsverzögerung für Keep-Alive TCP-Pakete mit festlegenkeepAliveMsecs, die standardmäßig 1000 ms beträgt. Einzelheiten finden Sie in der Node.js Dokumentation.