Tôi hiện đang vật lộn để tìm cách tái sử dụng các kết nối khi tạo các bài đăng HTTP trong Golang.Sử dụng lại các kết nối http trong Golang
tôi đã tạo ra một phương tiện giao thông và khách hàng như sau:
// Create a new transport and HTTP client
tr := &http.Transport{}
client := &http.Client{Transport: tr}
tôi sau đó đi qua con trỏ client này vào một goroutine mà là làm cho nhiều bài viết để các thiết bị đầu cuối tương tự như vậy:
r, err := client.Post(url, "application/json", post)
Nhìn vào netstat điều này dường như dẫn đến kết nối mới cho mỗi bài viết dẫn đến một số lượng lớn các kết nối đồng thời đang được mở.
Cách chính xác để sử dụng lại kết nối trong trường hợp này là gì?
Xin chào, cảm ơn bạn đã phản hồi. Vâng, xin lỗi tôi nên cũng đã bao gồm điều đó. Tôi đang đóng kết nối với r.Body.Close(). – sicr
@sicr, bạn có tích cực là máy chủ không thực sự tự đóng các kết nối không? Ý tôi là, những kết nối nổi bật này có thể ở một trong các trạng thái '* _WAIT' hoặc một cái gì đó như thế này – kostix
@kostix Tôi thấy một số lượng lớn các kết nối với trạng thái được thành lập khi nhìn vào netstat. Có vẻ như một kết nối mới đang được sinh ra trên mọi yêu cầu POST như trái ngược với cùng một kết nối đang được sử dụng lại. – sicr