Wir haben das Kommende end-of-support für AWS SDK für JavaScript v2 angekündigt
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
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