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

Comment désactiver le regroupement de connexions pour le client http.Go de Go ?

DDD
Libérer: 2024-11-08 16:01:02
original
474 Les gens l'ont consulté

How to Disable Connection Pooling for Go's http.Client?

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

Dans Go, le net/http.Client gère les connexions aux serveurs HTTP. Par défaut, il utilise le regroupement de connexions pour améliorer les performances en réutilisant les connexions existantes. Cependant, à des fins de tests ou dans certains cas d'utilisation, il peut être nécessaire de désactiver le pooling de connexions.

Pour désactiver le pooling de connexions pour un http.Client, deux méthodes peuvent être utilisées : définir Transport.DisableKeepAlives ou définir Transport.MaxIdleConnsPerHost à -1.

Utilisation Transport.DisableKeepAlives

Le champ Transport.DisableKeepAlives contrôle si le transport désactive le maintien de la vie pour les requêtes. Le définir sur true empêche les connexions de rester ouvertes entre les requêtes. Cette méthode est recommandée si la désactivation des keep-alives est souhaitée.

Pour désactiver les keep-alives, utilisez le code suivant :

import (
    "net/http"
    "time"
)

func main() {
    t := http.DefaultTransport.(*http.Transport).Clone()
    t.DisableKeepAlives = true
    
    c := &http.Client{Transport: t}
    // ...
}
Copier après la connexion

Utilisation de Transport.MaxIdleConnsPerHost

Le champ Transport.MaxIdleConnsPerHost contrôle le nombre maximum de connexions inactives par hôte. Le définir sur -1 désactive le pool de connexions en empêchant toute connexion de rester inactive.

Pour désactiver le pool de connexions à l'aide de cette méthode, utilisez le code suivant :

import (
    "net/http"
    "time"
)

func main() {
    t := http.DefaultTransport.(*http.Transport).Clone()
    t.MaxIdleConnsPerHost = -1
    
    c := &http.Client{Transport: t}
    // ...
}
Copier après la connexion

Remarque :

Le réglage de Dialer.KeepAlive sur -1 ne désactive pas le regroupement de connexions. Au lieu de cela, il désactive la conservation des connexions actives, mais les connexions sont toujours gérées dans le pool de connexions.

Considérations supplémentaires :

  • La désactivation du pool de connexions peut réduire performances car de nouvelles connexions doivent être établies pour chaque requête.
  • Le transport par défaut pour http.Client utilise TLS pour chiffrer les connexions. La désactivation du regroupement de connexions peut avoir un impact sur la reprise et les performances de la session TLS.

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal