随着并发数增加http并发请求时间特别长
oohcode·2017-11-06 11:50:56·559次阅读·发布于 Go问答

最近项目想用beego来做,实际测试中发现如果在业务处理中调用了http.Get包访问外部资源,随着并发数的增加,每个request的处理时间成倍的增长,用http原生包也存在这种问题,请问这个问题的具体原因以及该如何优化呢? 代码补充如下:

package main import ( "net/http" "fmt" "sync" "time" ) func main() { mainStart := time.Now() //n := 10 //n := 100 n := 1000 rsyncGet(n); mainEnd := time.Since(mainStart) fmt.Println("main cost", mainEnd.String()) } func rsyncGet(n int) { var wg sync.WaitGroup for i := 0; i < n; i++ { wg.Add(1) go func() { defer wg.Done() get() }() } wg.Wait() } func get() { getStart := time.Now() resp, _ := http.Get ("http://www.baidu.com") defer resp.Body.Close() getEnd := time.Since(getStart) fmt.Println("get cost", getEnd.String()) }
发起回帖
未登录,登录后可以回帖