Go http.Client에 대한 연결 풀링 끄기
Go의 http.Client에 대한 연결 풀링을 비활성화하려면 해당 전송 설정을 수정할 수 있습니다. 두 가지 주요 접근 방식이 있습니다.
접근 방법 1: 비활성화KeepAlive
Transport.DisableKeepAlives를 true로 설정하면 전송에서 기존 연결을 재사용하지 못하게 됩니다. 그러나 이로 인해 요청에 Connection: close 헤더가 추가될 수 있으며 이는 모든 테스트 시나리오에서 바람직하지 않을 수 있습니다.
접근 방식 2: MaxIdleConnsPerHost 설정
Transport.MaxIdleConnsPerHost를 -1과 같은 음수 값으로 설정하면 연결 풀링도 효과적으로 비활성화됩니다. 비활성화KeepAlives와 달리 이 접근 방식은 요청 헤더에 영향을 미치지 않습니다.
샘플 코드
다음은 비활성화KeepAlive를 사용하여 연결 풀링을 비활성화하는 예입니다.
t := http.DefaultTransport.(*http.Transport).Clone() t.DisableKeepAlives = true c := &http.Client{Transport: t}
다음은 MaxIdleConnsPerHost를 사용하는 예입니다.
t := http.DefaultTransport.(*http.Transport).Clone() t.MaxIdleConnsPerHost = -1 c := &http.Client{Transport: t}
Dialer.KeepAlive를 -1로 설정해도 연결 풀링이 비활성화되지 않는다는 점에 유의하는 것이 중요합니다. 이 설정은 활성 연결의 연결 유지 동작에만 영향을 미치며 새 연결 생성에는 영향을 미치지 않습니다.
위 내용은 Go의 http.Client에 대한 연결 풀링을 어떻게 비활성화할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!