This release includes some additions meant to help when using this client to communicate with servers that are behind a layer-3 TCP load balancer (which includes Kubernetes services when both client and server are in the same Kubernetes cluster).
In these cases, DNS may resolve only to a single IP address for the load balancer, and since it only balances connection establishment (since it's layer-3, not layer-7/HTTP) this could result in poor load distribution, such as all traffic being sent to a single backend.
When it is expected that the resolver (such as DNS) could return few addresses (or even only one), this will cause the client to create additional connections anyway. If the server is a layer-3 TCP load balancer, each connection created is likely to be connected to a different backend, to aid load distribution.
Add httplb.WithRoundTripperMaxLifetime, which causes connections to be periodically recycled by @jhump in #60
As connections organically come and go, like from backends being turned down and up (like during software deploys or when the backend servers are scaled up and down as traffic volume changes), it is possible for multiple connections through a layer-3 TCP load balancer to end up connected to a small number of actual backends (even potentially only one). To ensure connection diversity and mitigate this situation, this option can be used to cause connections to be continually re-established.
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps github.com/bufbuild/httplb from 0.1.0 to 0.2.0.
Release notes
Sourced from github.com/bufbuild/httplb's releases.
Commits
7463e81
Add support for recycling "leaf" connections (#60)d54bc5d
Bump actions/setup-go from 4 to 5 (#55)1bbe543
Add resolver.MinConnections (#58)70f6f8b
Create add-to-project workflow (#56)Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show