Maison >développement back-end >Golang >Comment puis-je désactiver le regroupement de connexions pour le http.Client de Go ?

Comment puis-je désactiver le regroupement de connexions pour le http.Client de Go ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-06 22:25:02556parcourir

How can I disable connection pooling for Go's http.Client?

Désactivation du regroupement de connexions pour Go http.Client

Pour désactiver le regroupement de connexions pour le http.Client de Go, vous pouvez modifier ses paramètres de transport. Il existe deux approches principales :

Approche 1 : DisableKeepAlive

Définir Transport.DisableKeepAlives sur true empêchera le transport de réutiliser les connexions existantes. Cependant, cela peut entraîner l'ajout d'un en-tête Connection: close aux requêtes, ce qui peut ne pas être souhaitable dans tous les scénarios de test.

Approche 2 : définir MaxIdleConnsPerHost

La définition de Transport.MaxIdleConnsPerHost sur une valeur négative, telle que -1, désactivera également efficacement le regroupement de connexions. Contrairement à DisableKeepAlives, cette approche n'affectera pas les en-têtes de requête.

Exemple de code

Voici un exemple de désactivation du regroupement de connexions à l'aide de DisableKeepAlive :

t := http.DefaultTransport.(*http.Transport).Clone()
t.DisableKeepAlives = true
c := &http.Client{Transport: t}

Et voici un exemple utilisant MaxIdleConnsPerHost :

t := http.DefaultTransport.(*http.Transport).Clone()
t.MaxIdleConnsPerHost = -1
c := &http.Client{Transport: t}

Il est important de noter que définir Dialer.KeepAlive sur -1 ne désactive pas le regroupement de connexions. Ce paramètre affecte uniquement le comportement de maintien des connexions actives, pas la création de nouvelles connexions.

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