테스트 시나리오에서는 각 HTTP/에 대해 새로운 TCP 연결을 생성하기 위해 Go의 HTTP 클라이언트에서 연결 풀링을 비활성화해야 할 수도 있습니다. 1.x 요청. 이 가이드에서는 이를 달성하기 위한 다양한 접근 방식을 살펴봅니다.
http.Client에서 사용하는 기본 http.Transport는 연결 풀링을 활성화하지만 이는 불편할 수 있습니다. 풀링을 비활성화하려면 Transport.MaxIdleConnsPerHost를 음수 값으로 설정하거나 Transport.DisableKeepAlives를 true로 설정할 수 있습니다.
Keep-alive는 일반적으로 지속적인 유지를 위해 사용됩니다. 하지만 Transport.DisableKeepAlives를 true로 설정하면 클라이언트는 각 요청 후에 연결을 강제로 닫습니다. 이 접근 방식은 "Connection: close" 요청 헤더를 추가하고 다음과 같이 설정할 수 있습니다.
t := http.DefaultTransport.(*http.Transport).Clone() t.DisableKeepAlives = true c := &http.Client{Transport: t}
MaxIdleConnsPerHost, -1로 설정된 경우, 호스트당 유휴 연결 수를 0으로 제한합니다. 이렇게 하면 효과적으로 비활성화됩니다. pooling:
t := http.DefaultTransport.(*http.Transport).Clone() t.MaxIdleConnsPerHost = -1 c := &http.Client{Transport: t}
Dialer.KeepAlive는 풀링을 비활성화하는 옵션처럼 보일 수 있지만 풀링 유지 기간만 설정합니다. 활성 연결. 풀링은 이 설정의 영향을 받지 않습니다.
원하는 경우 위 옵션을 DialContext, TLSHandshakeTimeout, ResponseHeaderTimeout 및 ExpectContinueTimeout에 대한 사용자 정의 설정과 결합할 수 있습니다. http.Client.
풀링 제한은 당 활성 연결 수로 제한되지 않는다는 점에 유의하는 것이 중요합니다. 주인. 그러나 MaxIdleConnsPerHost 및DisableKeepAlives와 같은 옵션은 테스트 목적으로 풀링을 비활성화하는 효과적인 방법을 제공합니다.
위 내용은 테스트 목적으로 Go의 HTTP 클라이언트에서 연결 풀링을 비활성화하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!