Nodejs
[Nodejs] Error: read ECONNRESET at TCP.onStreamRead (node:internal/stream_base_commons:213:20)
Satisfaction
2020. 12. 18. 17:20
해당 오류를 검색해 본 결과 원인은 통신 중 어느 한 쪽의 커넥션이 끊겼을 때 발생한다고 한다.
상대 서버를 조사해 본 결과 상대측에서 끊은 것은 아니라 좀 더 찾아보니,
내 서버에서 병렬적으로 네트워크 요청을 할때 그 갯수가 한계치를 넘어서면 더 이상 요청을 발송하지 못하고 뻗어버린다고 한다.
const axios = require("axios");
axios.default.timeout = 5 * 1000;
커넥션을 하는 부분을 찾아 우선 timeout 값을 지정해 줘서 일정 시간이 지나도록 상대 서버가 응답하지 않으면 이쪽에서 먼저 커넥션을 끊어버리게 만든다.
나는 axios를 사용중이라 위 방법대로 지정했고,
다른 http request module을 사용할 경우 해당 문서를 읽고 타임아웃 최대 시간을 설정한다.
또한 해당 오류 발생 후 노드 프로세스가 강제 종료되는걸 막고 싶다면 app.js에서
//catch unCaughtException
process.on("uncaughtException", function(err) {
console.error("uncaughtException (Node is alive)", err);
});
위 코드를 사용한다.