From 093603896584d06e3de870e1a1dfe1aa5443c570 Mon Sep 17 00:00:00 2001 From: nolouch Date: Tue, 8 Aug 2023 16:44:50 +0800 Subject: [PATCH] utils: let http client can reuse connections Signed-off-by: nolouch --- pkg/utils/etcdutil/etcdutil.go | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/pkg/utils/etcdutil/etcdutil.go b/pkg/utils/etcdutil/etcdutil.go index cba08c7bb99..68c0e88c9d8 100644 --- a/pkg/utils/etcdutil/etcdutil.go +++ b/pkg/utils/etcdutil/etcdutil.go @@ -270,12 +270,16 @@ func CreateEtcdClient(tlsConfig *tls.Config, acURL url.URL) (*clientv3.Client, e } func createHTTPClient(tlsConfig *tls.Config) *http.Client { - return &http.Client{ - Transport: &http.Transport{ - DisableKeepAlives: true, - TLSClientConfig: tlsConfig, - }, + // FIXME: Currently, there is no timeout set for certain requests, such as GetRegions, + // which may take a significant amount of time. However, it might be necessary to + // define an appropriate timeout in the future. + cli := &http.Client{} + if tlsConfig != nil { + transport := http.DefaultTransport.(*http.Transport).Clone() + transport.TLSClientConfig = tlsConfig + cli.Transport = transport } + return cli } // InitClusterID creates a cluster ID for the given key if it hasn't existed.