chore(http): allow http client configuration to vary by endpoint #2935
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Currently all HTTP client configuration is derived from the configuration loaded at startup.
We'd like to allow this configuration to vary by endpoint so that, for example, we can enable keepalives when communicating with other proxies. These keepalives allow load balancers to eagerly detect connections that are in a bad state (i.e. before attempting to write a request to that connection).
To setup this kind of per-endpoint configuration, this change modifies the HTTP client to extract its configuration from the per-endpoint target so that calling stacks can provide this configuration.
The inbound and outbound stacks continue to set these configurations based on process-wide defaults, but we now have obvious places where we can set these parameters based on discovery results.
There are no user-facing functional changes in this commit.