Fünf Load Balancer und Reverse Proxys für MySQL

Für die effiziente Verteilung von Datenbank-Querys im Cluster sorgen Load Balancer. Der Artikel stellt fünf Vertreter dieser Gattung für MySQL vor.

Artikel verschenken
In Pocket speichern vorlesen Druckansicht
Fünf Load Balancer und Reverse Proxys für MySQL
Lesezeit: 16 Min.
Von
  • Sven Lankes
Inhaltsverzeichnis

Der klassische Weg, Daten zwischen mehreren MySQL-Servern auf dem gleichen Stand zu halten, ist die asynchrone Master-Slave-Replikation. Hierbei verarbeitet ein Master-Server alle datenverändernden Querys, während eine im Prinzip beliebige Zahl von Slave-Servern sich die Änderungen bei diesem abholt und damit die lesenden Anfragen bedient.

In den letzten Jahren haben sich die zwei recht ähnlichen Cluster-Lösungen Galera und MySQL Group Replication dazugesellt. Sie beherrschen sogar einen fast synchronen Betrieb und erlauben – mit Einschränkungen – das Schreiben auf mehrere Datenbank-Nodes. Diesen Ansätzen gemein ist, dass ein Datenbestand auf mehreren Serverinstanzen verteilt vorliegt und es einen Mechanismus gibt, der sicherstellt, dass eine Datenänderung zeitnah auf allen Instanzen ankommt.

Wenn sich eine Datenbank auf mehrere Rechner verteilt, stellt sich jedoch unweigerlich die Frage, wie man die hinzugewonnene Ausfallsicherheit und (Lese-)Kapazität am besten nutzen kann. Schließlich kann die Datenbank jetzt auf mehreren Instanzen Anfragen beantworten, während die anfragende Anwendung fast immer nur eine Instanz (IP-Adresse/Port) ansprechen kann. Ausnahmen sind Anwendungen, die auf Konnektoren aufsetzen, die einen Failover-Modus unterstützen, wie den JDBC-Treiber Connector/J von Oracle oder den noch nicht sehr weit verbreiteten PHP-Treiber mysqlnd_ms.