Fluxheim/Dokumentācija/Load balancer

Load balancer

Palaist several upstreams behind one public endpoint. Sākums simple, then add health checks and runtime controls.

Divi upstream

[[vhosts.routes]]
name = "app"
path_prefix = "/"
action = "proxy"

[vhosts.routes.proxy]
upstreams = [
  "10.0.0.11:8080",
  "10.0.0.12:8080",
]
upstream_weights = [100, 50]
upstream_aliases = ["app-a", "app-b"]

Balancing kontroles

KontroleLieto, kad
upstream_weightsBackend puse puseiem jāsaņem dažādas traffic daļas.
backup_upstreamsDaži backend jālieto tikai tad, kad primary izvēles neizdodas.
drain_upstreamsBackend puse puseam jāpabeidz esošais darbs, bet tas nedrīkst saņemt jaunu traffic.
disabled_upstreamsBackend puse puse jānotur ārpus rotācijas.
upstream_max_in_flightBackend puse puseam vajadzīgs lokāls concurrency cap.

Dynamic upstream fails

[vhosts.routes.proxy]
upstreams_file = "/run/fluxheim/backends/app.txt"
upstreams_file_refresh_secs = 5

Izmanto static upstream, kad vajag weights, aliases, backup, drain vai disabled state. File un DNS refreshed pooli apzināti patur līgumu mazāku.

Ko tas dod

  • Focused load-balancer release images are available.
  • Health checki var turēt bojātus backendus ārpus rotācijas.
  • Drain un force-down darbības palīdz maintenance logos.
  • Managed-cookie affinity ir pieejama, ja session vajag stabilu backend.
Latviešu