Go manque-t-il de mise en cache DNS intégrée ?
Bien qu'il s'agisse d'un aspect notable d'un fonctionnement économe en ressources dans l'exploration du Web, Go manque actuellement de DNS natif mise en cache de recherche. Cela soulève la question de savoir si le système d'exploitation sous-jacent inclut des fonctionnalités de mise en cache que Go peut exploiter.
Examen des alternatives potentielles
Bien que Go ne fournisse pas de mise en cache intégrée, le système d'exploitation sous-jacent peut offrir des options :
Exploration de solutions tierces
Pour compenser le manque de mise en cache native dans Go, envisagez des packages externes comme dnscache . Cette solution permet une mise en œuvre facile de la mise en cache DNS, comme le démontre l'extrait de code dans le fichier readme :
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:]) }, }
La mise en œuvre de ce code permet la mise en cache de toutes les requêtes HTTP effectuées via des fonctions telles que http.Get.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!