Node.js에서 HTTPS keepAlive 활성화
8329 단어 performancenodeprogramming
keepAlive
는 Node.js에서 기본적으로 활성화되지 않으며 네트워크 집약적인 애플리케이션에 심각한 성능 영향을 미칩니다.영향을 설명하기 위해 서버가
us-central1
에서 호스팅되고 us-east1
에서 서비스와 통신한다고 가정하면 네트워크 대기 시간은 ~20ms입니다. TCP 핸드셰이크는 3패킷 이벤트이므로 TLS 핸드셰이크를 설정하는 데만 ~60ms가 할당된다는 의미입니다.간단한 스크립트로 테스트할 수 있습니다.
const got = require('got');
const main = async () => {
const response0 = await got('https://posthog.com/');
console.log(response0.timings.phases);
const response1 = await got('https://posthog.com/');
console.log(response1.timings.phases);
};
main();
이 시나리오에서 위의 내용은 다음을 생성합니다.
{
wait: 1,
dns: 20,
tcp: 72,
tls: 74,
request: 0,
firstByte: 79,
download: 222,
total: 468
}
{
wait: 0,
dns: 1,
tcp: 67,
tls: 69,
request: 1,
firstByte: 73,
download: 234,
total: 445
}
그러나
total
를 활성화한 경우 keepAlive
시간을 확인하십시오.const got = require('got');
const https = require('https');
https.globalAgent = new https.Agent({ keepAlive:true });
const main = async () => {
const response0 = await got('https://posthog.com/');
console.log(response0.timings.phases);
const response1 = await got('https://posthog.com/');
console.log(response1.timings.phases);
};
main();
{
wait: 1,
dns: 27,
tcp: 77,
tls: 75,
request: 0,
firstByte: 75,
download: 220,
total: 475
}
{
wait: 0,
dns: 0,
tcp: 0,
tls: 0,
request: 0,
firstByte: 77,
download: 83,
total: 160
}
두 번째 요청은 첫 번째 요청보다 70% 빠릅니다!
응용 프로그램이 많은 HTTPS 호출에 의존하는 경우 단순히 활성화
keepAlive
하면 성능이 크게 향상됩니다.
Reference
이 문제에 관하여(Node.js에서 HTTPS keepAlive 활성화), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/gajus/enable-https-keepalive-in-nodejs-2ecn텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)