1 回答

TA貢獻1843條經(jīng)驗 獲得超7個贊
問題 1:GO httptrace 根據(jù)主機名(api.abcd.com)或 IP 地址確定“連接重用”?
httptrace.GotConnInfo.Reused
跟蹤 TCP 連接是否用于另一個 HTTP 請求。它是每個 IP 地址。
問題2:GO http包空閑連接池其實就是一個map,key是一個struct類型的connectMethodKey。此結(jié)構(gòu)中的地址字段是主機名還是 IP 地址?
addr
是hostname
如果您將請求發(fā)送到類似的東西,則可能是一個 IP http://127.0.0.1/
。
問題3:當請求開始發(fā)送到22.22.22.22時,到11.11.11.11的套接字連接是空閑的,為什么GO http不再使用空閑連接了?我不認為那些空閑連接已經(jīng)超時。
如果您使用 HTTP 1,它的工作方式可能會有所不同。有了它,每個請求都需要自己的 TCP 連接。后續(xù)請求可能會重用TCP連接,但如果要并行運行請求,則需要建立多個TCP連接。每個連接都會使用不同的 IP 地址,您會看到流量均勻分布。
使用 HTTP/2,單個 TCP 連接可用于多個并行請求。該連接使用單個 IP 地址。
這是 GO 計算新請求是否可以使用開放連接的方式:
使用這些嬰兒車在多個 TCP 連接之間分配流量。
- 1 回答
- 0 關(guān)注
- 122 瀏覽
添加回答
舉報