golang管理http代理

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。

說明

由於使用go的內建的net/http庫並結合http代理使用時會遇到too many open filestoo many open connections這樣的錯誤,導致無法建立新的串連,其原因是沒有釋放已用過的串連,本文只是用來總結解決這個問題的設定

代碼

組裝http請求時設定訪問完成時自動關閉串連,這樣就不會讓伺服器和用戶端一直保持串連,從而造成資源耗光了

http_requ, _ := http.NewRequest(req.Method, dest_url, req.Body)http_requ.Header = req.Header//在頭部設定使用之後關閉串連http_requ.Header.Set("Connection", "close")//或者直接設定Closehttp_requ.Close = true

其他設定是看原始碼中的注釋瞎猜的

http_client := &http.Client{    Timeout: time.Duration(3 * time.Second),//用戶端設定3秒逾時}
http_client.Transport = &http.Transport{    DisableKeepAlives: false,//關閉串連複用,因為後台串連過多最後會造成連接埠耗盡    MaxIdleConns: -1,  //最大空閑串連數量    IdleConnTimeout: time.Duration(3 * time.Second),  //空閑連線逾時時間    Proxy: http.ProxyURL(proxy_addr), //設定httpProxy 位址}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.