DB 커넥션 풀이 DB 연결에 걸리는 시간을 줄여 성능을 높이는 것처럼 HTTP 연결도 커넥션 풀을 사용하면 연결 시간 줄일 수 있어 응답 속도 향상에 도움이 된다.

HTTP 커넥션 풀을 사용할 때는 다음 3가지를 고려

  • HTTP 커넥션 풀 크기
  • 풀에서 HTTP 커넥션 가져올 때까지 대기하는 시간
  • HTTP 커넥션을 유지할 시간(keep alive) HTTP 커넥션 풀 사용시 가장 먼저 고려해야되는건 풀의 크기다. 풀의 크기는 연동할 서비스의 성능에 따라 결정해야한다. 무작정 풀 크기 늘리면 순간적으로 트래픽 몰릴때 연동 서비스의 응답시간이 급격히 느려질수도있다. 그러니 풀 크기 결정때는 연동 서비스의 처리능력도 고려하자.

두 번째는 대기 시간. 예를 들어, HTTP 커넥션 풀 크기가 10이라면 동시에 11개 외부 연동 요청이 올때 10개는 실행되고 1개는 커넥션 반환까지 대기한다. 대기 시간이 길어지면 전체 응답시간도 길어지므로 대기 시간은 수 초 이내 짧게 ㄱ

필자 경험으로는 1~5초가 적당. 너무 짧으면 일시적 트랲픽 증가에 대처 못하고 너무 길면 전체 응답 시간 길어질 수 있음

세 번째는 커넥션 유지 시간. 커넥션은 무한정 유지되지 않는다. 연동 서비스가 일정 시간 동안만 커넥션 유지한 뒤 연결 끊는 경우도 있다. 끊어진 커넥션을 사용하면 에러가 발생하므로 연동 서비스에 맞춰 유지 시간 적절히 해야됨. 예를들어, HTTP/1.1 에선 서버가 Keep-Alive 헤더로 연결 유지 시간 지정한다. 이 시간 지나면 서버는 연결을 끊는다.