Go 中的DNS 快取
在測試爬蟲的開發中,常常會出現一個疑問:Go(golang)是否實現了快取機制DNS 查詢?
在檢查 dnsclient 套件時,沒有明確提及快取。然而,此功能通常對於爬蟲優化、最大限度地減少額外的 DNS 查詢至關重要。
答案:
Go (1.4) 的預設實作不包含內建功能DNS 快取。
替代快取機制:
範例:
<code class="go">http.DefaultClient.Transport = &http.Transport{ MaxIdleConnsPerHost: 64, Dial: func(network string, address string) (net.Conn, error) { separator := strings.LastIndex(address, ":") ip, _ := dnscache.FetchString(address[:separator]) return net.Dial("tcp", ip+address[separator:]) }, }</code>
以上是Go (golang) 是否包含內建 DNS 快取?的詳細內容。更多資訊請關注PHP中文網其他相關文章!