2016-12-20 6 views
1

Als ich eine Anwendung habe, in der Architektur nach unten ist,Wie skaliert man den Haproxy-Knoten selbst?

users ----> Haproxy load balancer(TCP Connection) -> Application server 1 
                -> Application server 2 
                -> Application server 3 

Jetzt bin ich in der Lage Server zu skalieren und Maßstab in der Anwendung. Aber aufgrund der hohen Anzahl von TCP-Verbindungen (ca. 10000 TCP-Verbindungen), mein Knoten Knoten RAM RAM voll wird, so weiter nicht in der Lage, mehr von TCP-Verbindungen Afterwords zu erreichen. Also muss ein weiterer Knoten für happroxy selbst hinzugefügt werden. Also meine Frage ist, wie Haproxy-Knoten selbst zu skalieren oder gibt es eine andere Lösung für die gleiche?

Wie ich Anwendung auf AWS bereitstellen. Ihre Lösung wird sehr geschätzt.

Danke, Mayank

Antwort

2

Verwenden AWS Route53 und CNAMEs diesen Punkt zu Ihren haproxy Instanzen erstellen.

Zum Beispiel:

CNAME erstellen haproxy.example.com zeigen instance1 HAProxy. Erstellen Sie ein zweites CNAME haproxy.example.com, das auf haproxy instance2 verweist.

Beide CNAMEs sollten eine Art Routing-Richtlinie verwenden. Am einfachsten ist wahrscheinlich Round Robin. Rotiert einfach über Ihre CNAME-Liste. Wenn Sie haproxy.example.com aufrufen, erhalten Sie die Adressen beider Instanzen. Die Reihenfolge der zurückgegebenen ips ändert sich mit jeder Anfrage. Dadurch wird die Last gleichmäßig auf Ihre beiden Instanzen verteilt.

Es gibt viele weitere Optionen je nach Bedarf: http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy.html

Insgesamt ist dieses recht einfach zu konfigurieren.

Wenige nicht verwandte Probleme: Sie können auch Systemdiagnosen einrichten und den Datenverkehr zu den verbleibenden fehlerfreien Instanzen weiterleiten, falls erforderlich. Wenn Sie mit zwei Instanzen arbeiten, möchten Sie vielleicht noch ein paar mehr hinzufügen, um mit einem Ausfall einer Instanz fertig zu werden.