HTTP リクエストの帯域幅消費の制限
HTTP リクエストの帯域幅使用量の制限は、Golang によって消費されるネットワーク トラフィックを制御するために使用される手法です。応用。 http.Get() メソッドを使用してこれを実現する方法は次のとおりです。
code.google.com/p/mxk/go1/flowcontrol などのサードパーティ パッケージを使用できます。これは、帯域幅を制限するための便利なラッパーを提供します。 。ただし、基礎となるメカニズムを理解したい場合は、手動で実装することもできます。
帯域幅制限について:
考え方は、データの転送速度を制御することです。アプリケーションによって送信または受信されます。帯域幅を制限するには、特定の間隔で応答本文から読み取れるバイト数を規制する必要があります。
コードの実装:
<code class="go">package main import ( "io" "net/http" "os" "time" ) var datachunk int64 = 500 // Bytes var timelapse time.Duration = 1 // per second func main() { response, _ := http.Get("http://google.com") for range time.Tick(timelapse * time.Second) { _, err := io.CopyN(os.Stdout, response.Body, datachunk) if err != nil { break } } }</code>
説明:
コードは、HTTP リクエストを Google に送信し、その応答を変数に保存することから始まります。次にループが開始され、応答本文から 500 バイト単位でデータが読み取られ、標準出力に出力されます。 time.Tick 関数は、各チャンクの読み取り間の時間間隔を制御するために使用されます。
この単純な実装は、データ転送を特定のレートに調整することで帯域幅の消費を効果的に制限します。データチャンク変数とタイムラプス変数を調整して、必要に応じて帯域幅の使用状況を調整できます。
注: この方法は、基礎となるネットワーク接続で使用される帯域幅を制限するのではなく、速度を制御します。応答本文から読み取られるデータ。
以上がGolang で HTTP リクエストの帯域幅消費を制限するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。