Im Moment haben wir nur einen Back-End-Server pro Site / Web-Service. Es würde mich interessieren, welche Erfahrungen die Leute mit verschiedenen Load-Balancer-Apps machen (etwas, das unter Linux läuft).
Was würdest du empfehlen?
Im Moment haben wir nur einen Back-End-Server pro Site / Web-Service. Es würde mich interessieren, welche Erfahrungen die Leute mit verschiedenen Load-Balancer-Apps machen (etwas, das unter Linux läuft).
Was würdest du empfehlen?
Antworten:
Laut der Episode 27 des StackOverflow-Podcasts scheinen die Reddit-Leute HAProxy wirklich zu mögen . In diesem kurzen Tutorial wird gezeigt, wie HAProxy mit dem EC2 von Amazon verwendet wird . Weitere Informationen finden Sie auf der HAProxy-Website .
Die Frage liefert keine spezifischen Informationen über die Auslastung, die benötigten Funktionen usw., daher ist jede Antwort bestenfalls eine Vermutung.
Pfund ist eine gute Wahl für kleinere / mittelgroße Websites. Es bietet HTTPS-Unterstützung und einfache Einrichtung.
HAproxy kann skaliert werden, um 10G-Ethernet-Pipes zu überlasten , und bietet eine Verbindungsbeschränkung, dh es wird nur die Anzahl gleichzeitiger Anforderungen an jeden Back-End- Server gesendet, wenn Sie Apache-Child- / Ruby-on-Rails-Instanzen bearbeiten müssen.
nginx eignet sich hervorragend als Allround-Load-Balancer und als statischer Dateiserver. Es kann HTTP-Komprimierung, URL-Umschreiben und das Bereitstellen statischer Dateien während des Lastenausgleichs ausführen.
Apache ist in der 2.2er Serie auch ein ziemlich guter Load Balancer. Kann fast das Gleiche tun wie nginx, belastet den Server jedoch stärker als nginx. Sehr lohnenswert, wenn Sie bereits mit Apache vertraut und sehr ausgereift sind.
Perlbal bietet eine einfache Beschränkung der Verbindung zu Back-End- Hosts, Multiplexing von Anforderungen über dauerhafte HTTP-Verbindungen und eine einfache Einrichtung, wenn Sie Perl bereits verwenden.
Der Lack-Cache ist ein Reverse-HTTP-Proxy mit grundlegender Lastausgleichsunterstützung. Es ist kein hervorragender Lastenausgleich, aber in einigen Situationen kann das speicherinterne Zwischenspeichern der meisten angeforderten Objekte einen hohen Prozentsatz der Back-End-Server-Zugriffe entfernen und bietet eine hervorragende Leistung. ESI-Includes sind potenziell interessant.
Ich bin mir nicht 100% sicher, aber Perlbal und nginx bieten eine gewisse Unterstützung für das Ändern der Konfiguration, ohne den Load Balancer neu zu starten. Für größere Standorte ist dies von entscheidender Bedeutung, und dies ist eines der Dinge, die gute kommerzielle Load-Balancer-Appliances gut können.
Bei allen oben genannten handelt es sich um Lastausgleichsmodule auf HTTP-Ebene (Schicht 7). Load Balancer auf TCP / IP-Ebene können einen höheren Durchsatz erzielen, sind jedoch auf andere Weise eingeschränkt. Der HAProxy-Autor hat eine gute, lesbare Übersicht über Methoden und Probleme des Lastenausgleichs geschrieben: http://1wt.eu/articles/2006_lb/
LVS ist ein weit verbreiteter Lastenausgleich auf TCP / IP-Ebene. Die meisten Firewalls können auch einen grundlegenden Lastausgleich auf IP-Ebene durchführen, indem sie die eingehende Anfrage über einen Bereich von Back-End-IP-Adressen verteilen - zumindest OpenBSDs PF und Cisco ASA und Juniper Netscreens können dies.
Wir verwenden LVS in der Produktion. Es wird von unserem Betriebsteam mit einer Reihe von komplexen und bösen Skripten verwaltet. Ein ziemlich ausgeklügeltes, maßgeschneidertes System gibt die Zustands- und Leistungsdaten unserer Realserver bekannt, damit der Load Balancer die Gewichte entsprechend einstellen kann.
LVS bietet Ihnen natürlich eine einzige Fehlerquelle - den Load Balancer (es gibt Möglichkeiten, sie redundant einzurichten).
Ich dachte, dies sei zu kompliziert, um es einzurichten, und schrieb Fluffy Linux Cluster, das lose darauf basierte, wie Windows NLB funktioniert (ich glaube, ich bin nicht sicher, wie das funktioniert) und auch von CLUSTERIP inspiriert war.
Wir verwenden es nicht in der Produktion, aber Fluffy kann eine angemessene (mindestens 5) Anzahl von Servern ohne Single Point of Failure und ohne zentralen Verwaltungsknoten usw. ausgleichen.
Wenn Sie sich für LVS entscheiden, würde ich mich auch mit Keepalived befassen, wenn Sie die Serverschicht für den Lastenausgleich hoch verfügbar machen möchten. Ich hatte Heartbeat / Pacemaker mit LVS für mehrere Monate verwendet und fand es zu kompliziert und manchmal instabil für eine einfache HA LB-Schicht.