From 6e1270dd08e513bdbb6fbb7378f207f1afef9fc3 Mon Sep 17 00:00:00 2001 From: Benjamin Buzbee Date: Wed, 6 Apr 2022 08:34:55 -0700 Subject: [PATCH] Use cleanhttp.DefaultPooledTransport for the default API client (#12409) The only difference is DefaultTransport sets DisableKeepAlives This doesn't make much sense to me - every http connection from the nomad client goes to the same NOMAD_ADDR so it's a great case for keep alive. Except round robin DNS and anycast perhaps. Consul does this already https://github.com/hashicorp/consul/blob/1e47e3c82b6eb937baab0688a67cf7ef334ce42c/api/api.go#L397 --- .changelog/12409.txt | 3 +++ api/api.go | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) create mode 100644 .changelog/12409.txt diff --git a/.changelog/12409.txt b/.changelog/12409.txt new file mode 100644 index 000000000..98daac1af --- /dev/null +++ b/.changelog/12409.txt @@ -0,0 +1,3 @@ +```release-note:improvement +api: default to using DefaultPooledTransport client to support keep-alive by default +``` diff --git a/api/api.go b/api/api.go index 2dc00a3f6..8e7c87106 100644 --- a/api/api.go +++ b/api/api.go @@ -264,7 +264,7 @@ func (t *TLSConfig) Copy() *TLSConfig { } func defaultHttpClient() *http.Client { - httpClient := cleanhttp.DefaultClient() + httpClient := cleanhttp.DefaultPooledClient() transport := httpClient.Transport.(*http.Transport) transport.TLSHandshakeTimeout = 10 * time.Second transport.TLSClientConfig = &tls.Config{