Go의 http.Transport를 분석하여 HTTP 커넥션 풀 관리 방법 설명
MaxIdleConnsPerHost 등, 커넥션 풀 효과적 사용을 위한 파라미터 조정 방법 제시
httptrace.ClientTrace를 활용, TLS Handshake 과정의 병목 현상 파악 및 해결
http.Client는 http.Transport를 통해 실제 HTTP 요청을 처리한다. 구체적으로 커넥션 풀은 Idle Connections 맵과 idleLRU 큐를 사용하여 관리된다. 따라서 MaxIdleConnsPerHost 설정을 통해 호스트별 유휴 커넥션 수를 제어하여 메모리 사용량을 최적화한다.
Go의 HTTP 커넥션 풀은 여러 파라미터를 통해 성능을 조절할 수 있다. 값을 조정하여 트래픽 변화에 유연하게 대응할 수 있다. 반면, 과도한 값 설정은 을 유발하여 의 원인이 될 수 있으므로 주의해야 한다.
httptrace.ClientTrace를 사용하여 HTTP 요청의 각 단계를 추적할 수 있다. 구체적으로 TLSHandshakeStart와 TLSHandshakeDone을 통해 TLS 핸드셰이크 시간을 측정한다. 따라서 병목 지점을 파악하고, DynamoDB 응답 시간을 개선하는 데 활용할 수 있다.