9fe6c33c0d
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. |
||
---|---|---|
.. | ||
acl.go | ||
acl_events.go | ||
acl_events_test.go | ||
acl_oss.go | ||
acl_oss_test.go | ||
acl_schema.go | ||
acl_test.go | ||
autopilot.go | ||
autopilot_test.go | ||
catalog.go | ||
catalog_events.go | ||
catalog_events_oss.go | ||
catalog_events_oss_test.go | ||
catalog_events_test.go | ||
catalog_oss.go | ||
catalog_oss_test.go | ||
catalog_schema.go | ||
catalog_test.go | ||
config_entry.go | ||
config_entry_events.go | ||
config_entry_events_test.go | ||
config_entry_intention.go | ||
config_entry_intention_oss.go | ||
config_entry_oss.go | ||
config_entry_oss_test.go | ||
config_entry_schema.go | ||
config_entry_test.go | ||
connect_ca.go | ||
connect_ca_events.go | ||
connect_ca_events_test.go | ||
connect_ca_test.go | ||
coordinate.go | ||
coordinate_oss.go | ||
coordinate_oss_test.go | ||
coordinate_test.go | ||
delay_oss.go | ||
delay_test.go | ||
events.go | ||
federation_state.go | ||
graveyard.go | ||
graveyard_oss.go | ||
graveyard_test.go | ||
index_connect_test.go | ||
indexer.go | ||
intention.go | ||
intention_oss.go | ||
intention_test.go | ||
kvs.go | ||
kvs_oss.go | ||
kvs_oss_test.go | ||
kvs_test.go | ||
memdb.go | ||
operations_oss.go | ||
peering.go | ||
peering_oss.go | ||
peering_oss_test.go | ||
peering_test.go | ||
prepared_query.go | ||
prepared_query_index.go | ||
prepared_query_index_test.go | ||
prepared_query_test.go | ||
query.go | ||
query_oss.go | ||
schema.go | ||
schema_oss.go | ||
schema_oss_test.go | ||
schema_test.go | ||
session.go | ||
session_oss.go | ||
session_test.go | ||
state_store.go | ||
state_store_oss_test.go | ||
state_store_test.go | ||
store_integration_test.go | ||
system_metadata.go | ||
system_metadata_test.go | ||
tombstone_gc.go | ||
tombstone_gc_test.go | ||
txn.go | ||
txn_test.go | ||
usage.go | ||
usage_oss.go | ||
usage_test.go |