mirror of https://github.com/status-im/consul.git
1c2c975b0b
Prior to #13244, connect proxies and gateways could only be configured by an xDS session served by the local client agent. In an upcoming release, it will be possible to deploy a Consul service mesh without client agents. In this model, xDS sessions will be handled by the servers themselves, which necessitates load-balancing to prevent a single server from receiving a disproportionate amount of load and becoming overwhelmed. This introduces a simple form of load-balancing where Consul will attempt to achieve an even spread of load (xDS sessions) between all healthy servers. It does so by implementing a concurrent session limiter (limiter.SessionLimiter) and adjusting the limit according to autopilot state and proxy service registrations in the catalog. If a server is already over capacity (i.e. the session limit is lowered), Consul will begin draining sessions to rebalance the load. This will result in the client receiving a `RESOURCE_EXHAUSTED` status code. It is the client's responsibility to observe this response and reconnect to a different server. Users of the gRPC client connection brokered by the consul-server-connection-manager library will get this for free. The rate at which Consul will drain sessions to rebalance load is scaled dynamically based on the number of proxies in the catalog. |
||
---|---|---|
.. | ||
proxysupport | ||
serverlessplugin | ||
testdata | ||
xdscommon | ||
clusters.go | ||
clusters_test.go | ||
config.go | ||
config_test.go | ||
delta.go | ||
delta_test.go | ||
endpoints.go | ||
endpoints_test.go | ||
envoy_versioning.go | ||
envoy_versioning_test.go | ||
failover_math.go | ||
failover_math_test.go | ||
golden_test.go | ||
listeners.go | ||
listeners_ingress.go | ||
listeners_test.go | ||
naming.go | ||
net_fallback.go | ||
net_linux.go | ||
protocol_trace.go | ||
rbac.go | ||
rbac_test.go | ||
resources.go | ||
resources_oss_test.go | ||
resources_test.go | ||
response.go | ||
routes.go | ||
routes_test.go | ||
server.go | ||
server_oss.go | ||
serverless_plugin_oss_test.go | ||
testing.go | ||
xds.go | ||
xds_protocol_helpers_test.go | ||
z_xds_packages.go | ||
z_xds_packages_test.go |