Load Balancing

Load balancing dictates how requests are distributed across multiple instances of any given service. This document shows how to configure load balancing policies in Grey Matter.

Table of Contents

Configuration Reference

To configure load balancing, the lb_policy field of the cluster object must be configured.

Attribute

Description

Type

Default

lb_policy

How requests are distributed to instances of the cluster.

string

least_request

Detailed Configuration and Usage

lb_policy Options

Value

Description

"least_request"

New requests will be sent to the instance with the fewest active requests.

"round_robin"

Requests will cycle through each "next" host in the available instances

"ring_hash"

Ring Hash is one of the load balancer policies that does consistent hashing to upstream hosts, provided requests are made in a way that supplies a value to hash on. See the full explanation in the Envoy docs

"random"

New requests will be sent randomly to a new host.

"maglev"

Maglev is another load balancer that performs consistent hashing to upstreams, but is dependent on hashable information available in the request. See more in the Envoy documentation.

Example cluster

{
  "zone_key": "default-zone",
  "cluster_key": "edge-service",
  "name": "edge",
  "instances": [],
  "circuit_breakers": {
    "max_connections": 500,
    "max_requests": 500
  },
  "lb_policy": "random",
  "outlier_detection": null,
  "health_checks": []
}

External Resources

Last updated

Was this helpful?