Wiederverwenden von Verbindungen mit Keep-Alive in Node.js - AWS SDK for JavaScript

Wir haben das Kommende end-of-support für AWS SDK for JavaScript v2 angekündigt. Wir empfehlen Ihnen, auf AWS SDK for JavaScript Version 3 zu migrieren. Termine, weitere Details und Informationen zur Migration finden Sie in der verlinkten 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.

Wiederverwenden von Verbindungen mit Keep-Alive in Node.js

Standardmäßig erstellt der standardmäßige Node.js-HTTP/HTTPS-Agent eine neue TCP-Verbindung für jede neue Anforderung. 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 ist, können Sie auch die anfängliche Verzögerung für TCP-Keep-Alive-Pakete mit keepAliveMsecs festlegen, die standardmäßig 1000 ms beträgt. Weitere Informationen finden Sie in der Node.js-Dokumentation .