Maison >développement back-end >Golang >Go manque-t-il de mise en cache DNS intégrée ?

Go manque-t-il de mise en cache DNS intégrée ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-03 22:28:03954parcourir

Does Go Lack Onboard DNS Caching?

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 :

  • Debian/Ubuntu/Linux : aucun mécanisme de mise en cache DNS explicite
  • Windows : conserve un fichier HOSTS pour la résolution DNS locale
  • Darwin /OSX : prend en charge le répondeur mDNS et la mise en cache

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn