隨著併發數增加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
- 合併HTTP請求vs並行HTTP請求,到底誰更快?HTTP並行
- 合併HTTP請求 vs 並行HTTP請求,到底誰更快?HTTP並行
- python併發執行request請求Python
- 說說你對請求數和併發數的理解
- 併發數、併發以及高併發分別是什麼意思?
- 提交一個併發請求(Concurrent Program)
- 請求合併與拆分在併發場景中應用
- 併發請求的重複插入問題
- Apache Tomcat如何高併發處理請求ApacheTomcat
- 控制請求併發數量:p-limit 原始碼解讀MIT原始碼
- 使用jMeter構造大量併發HTTP請求進行微服務效能測試JMeterHTTP微服務
- C#中HttpWebRequest發起HTTP請求,如何設定才能達到最大併發和效能C#HTTPWeb
- 「Golang成長之路」併發之併發模式Golang模式
- PostgreSQL 併發控制機制(3):基於時間戳的併發控制SQL時間戳
- Singleflight(合併請求)
- 「Golang成長之路」併發之併發模式篇Golang模式
- 「分散式技術專題」併發系列二:基於時間的併發控制分散式
- 限制併發數
- 微信小程式解除 10 個請求併發限制了?!微信小程式
- Http協議什麼時候發生options請求?HTTP協議
- 【python隨筆】之【匹配執行緒數量併發】Python執行緒
- 非同步程式設計CompletableFuture實現高併發系統優化之請求合併非同步程式設計優化
- HTTP協議如何發起請求HTTP協議
- golang使用fasthttp 發起http請求GolangASTHTTP
- React技巧之發出http請求ReactHTTP
- 對於瀏覽器請求介面限制,是否有必要開發一套請求工作管理員元件,自主的去控制請求的併發,保證在瀏覽器允許的最大併發連線數限制之中,避免請求阻塞和資源搶佔。瀏覽器元件
- 淘寶API介面大全,支援免費測試,高併發請求,實時資料API
- Tomcat如何使用執行緒池處理遠端併發請求Tomcat執行緒
- 併發-1-併發模型模型
- Java併發---併發理論Java
- 位元組跳動面試官:請用JS實現Ajax併發請求控制面試JS
- windows中使用cmd發起http請求WindowsHTTP
- 23行程式碼實現一個帶併發數限制的fetch請求函式行程函式
- Guava併發:使用Monitor控制併發Guava
- 併發、多執行緒、HTTP連線數有何關係?執行緒HTTP
- Tips_傳送請求時新增一個隨機數引數,讓瀏覽器每次都重新發請求到伺服器隨機瀏覽器伺服器
- 併發工具類(三)控制併發執行緒的數量 Semphore執行緒