隨著併發數增加http併發請求時間特別長
最近專案想用 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())
}
更多原創文章乾貨分享,請關注公眾號
- 加微信實戰群請加微信(註明:實戰群):gocnio
相關文章
- 使用jMeter構造大量併發的隨機HTTP請求JMeter隨機HTTP
- nginx如何限制併發連線請求數?Nginx
- Apache提供併發連線請求數量Apache
- 檢視http的併發請求數與其TCP連線狀態HTTPTCP
- 什麼是併發連線數和請求數
- 合併HTTP請求vs並行HTTP請求,到底誰更快?HTTP並行
- 合併HTTP請求 vs 並行HTTP請求,到底誰更快?HTTP並行
- 併發請求的優先順序
- python併發執行request請求Python
- 請求合併與拆分在併發場景中應用
- 徒手擼框架--高併發環境下的請求合併框架
- 併發請求的重複插入問題
- 提交一個併發請求(Concurrent Program)
- 併發請求:統計資料收集模式模式
- Oracle EBS併發請求啟用跟蹤Oracle
- EBS提交併發請求的簡單例子單例
- EBS併發請求統計指令碼呢指令碼
- 控制請求併發數量:p-limit 原始碼解讀MIT原始碼
- 「Golang成長之路」併發之併發模式Golang模式
- 使用jMeter構造大量併發HTTP請求進行微服務效能測試JMeterHTTP微服務
- C#中HttpWebRequest發起HTTP請求,如何設定才能達到最大併發和效能C#HTTPWeb
- Apache Tomcat如何高併發處理請求ApacheTomcat
- 請問併發量和同時線上人數之間有什麼關係?
- PostgreSQL 併發控制機制(3):基於時間戳的併發控制SQL時間戳
- 「Golang成長之路」併發之併發模式篇Golang模式
- 微信小程式解除 10 個請求併發限制了?!微信小程式
- 限制併發數
- 「分散式技術專題」併發系列二:基於時間的併發控制分散式
- 設定併發管理器中的併發數
- 淘寶API介面大全,支援免費測試,高併發請求,實時資料API
- Http協議什麼時候發生options請求?HTTP協議
- 開源個.NetCore寫的 - 併發請求工具PressureToolNetCore
- Hystrix:HystrixCollapser請求合併
- Singleflight(合併請求)
- 網站效能優化——DNS預熱與合併HTTP請求網站優化DNSHTTP
- HTTP協議如何發起請求HTTP協議
- golang使用fasthttp 發起http請求GolangASTHTTP
- React技巧之發出http請求ReactHTTP