Непредвиденная ошибка: net / http: запрос отменен при ожидании соединения (превышено значение Client.Timeout при ожидании заголовков) - PullRequest
0 голосов
/ 11 октября 2019

Примерно каждые 3-4 минуты я видел ошибку в своем журнале

net / http: запрос отменялся при ожидании соединения (Client.Timeout превышен при ожидании заголовков)

Когда яиспользуйте ApacheBench для выражения сервера 127.0.0.1:8080 ab -c 30 -n 10000000 -k http://127.0.0.1:8080 Я думаю, что мой код в порядке. Нет ошибок.

Но примерно каждые 3-4 минуты,Я увидел ошибку в моем журнале

net / http: запрос отменен при ожидании соединения (Client.Timeout превышен при ожидании заголовков)

с моей машиной все в порядке, и это мой netstat.

LAST_ACK 2 CLOSE_WAIT 7 ESTABLISHED 108 SYN_SENT 3 TIME_WAIT 43

package httptest

import (
    "fmt"
    "io/ioutil"
    "net/http"
    "sync"
    "testing"
    "time"
)

var client *http.Client = &http.Client{
    Timeout: 500 * time.Millisecond,
    Transport: &http.Transport{
        DisableKeepAlives:   true,
        MaxIdleConnsPerHost: -1,
    },
}

func Benchmark_List(b *testing.B) {
    var (
        wg           sync.WaitGroup
        maxParallel  int       = 50
        parallelChan chan bool = make(chan bool, maxParallel)
    )
    b.ResetTimer()
    for i := 0; i < b.N; i++ {
        parallelChan <- true
        wg.Add(1)
        go func() {
            defer func() {
                wg.Done()
                <-parallelChan
            }()
            testHttp2()
        }()
    }
    wg.Wait()
}

func testHttp2() {
    req, _ := http.NewRequest("GET", "http://10.33.108.39:11222/index.php", nil)
    resp, err := client.Do(req)
    if err != nil {
        fmt.Println("error", err)
        return
    }
    defer resp.Body.Close()
    _, err = ioutil.ReadAll(resp.Body)
    if err != nil {
        return
    }

    fmt.Println("success")

}

Похоже, вопрос о том, как использовать Go? Или это выглядит как ошибка сети / http?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...