Go에서 HTTP Get 대역폭을 제한하는 방법
Go 초보자로서 소비되는 대역폭을 제어해야 하는 시나리오에 직면할 수 있습니다. 귀하의 http.Get() 요청에 의해. 널리 사용되는 솔루션 중 하나는 mxk/go1/flowcontrol과 같은 타사 패키지를 활용하는 것입니다. 그러나 기본 메커니즘을 더 깊이 이해하기 위해 이 문서에서는 간단한 사용자 정의 접근 방식을 제공합니다.
대역폭을 제한하려면 HTTP 응답 본문에서 데이터를 읽는 속도를 제한해야 합니다. 제공된 코드 조각에서:
<code class="go">package main import ( "io" "net/http" "os" "time" ) var datachunk int64 = 500 //Bytes var timelapse time.Duration = 1 //per seconds func main() { responce, _ := http.Get("http://google.com") for range time.Tick(timelapse * time.Second) { _, err := io.CopyN(os.Stdout, responce.Body, datachunk) if err != nil { break } } }</code>
두 가지 변수를 정의합니다.
주 함수는 다음 단계를 수행합니다.
이 간단한 접근 방식은 HTTP GET 요청의 대역폭을 제한하는 유연한 방법을 제공합니다. . 원하는 대역폭 제한을 달성하기 위해 필요에 따라 데이터 청크와 시간 경과를 조정할 수 있습니다.
위 내용은 Go에서 HTTP Get 대역폭을 제한하는 방법: 맞춤형 접근 방식?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!