Wie Tausende von backends in haproxy? Ist die neue map-Funktion nützlich für diese?

Will ich mit haproxy als proxy und load-balancer für Tausende von backends. So ein Antrag muss per Proxyfunktion an den richtigen backend je nach hostname und dann ein Lastenausgleich innerhalb des backend. Ich bin mit haproxy-1.5dev21.

Die config-Datei sieht wie folgt aus :

frontend public
  bind :80
  mode http
  acl host1 hdr_reg(host) host1.com
  use_backend be_host1 if host1

  acl host4000 hdr_reg(host) host4000.com
  use_backend be_host4000 if host4000

backend be_host[n]
  server hostn_1
  server hostn_2

Problem ist, dass ich eine Latenz von 30ms pro Anfrage, wenn es 5000 hosts. Und für 20k backends, haproxy dauert lange zu laden, ganz zu schweigen vom desaster Wartezeit pro Anfrage.

Kann ich etwas tun, besser als sequentielle acl-Regeln?
Ich habe nicht gefunden, ein Beispiel für die neue map-Funktion - die release-notes sagen: es kann verwendet werden für eine massive Umleitung Regeln.
Ich versuchte dies :

use_backend %[hdr(host), map(host_to_backend_map.file)]

Offensichtlich etwas dumm vor mit Landkarte, aber jede Beratung hilfreich wäre.
Danke!

InformationsquelleAutor rcrc | 2014-02-25
Schreibe einen Kommentar