Hochverfügbarer Java-Enterprise-Betrieb

Java ist nach wie vor eine der weit verbreitetsten Programmiersprachen. Vor allem im Enterprise-Umfeld ist der Einsatz von Java bei der Entwicklung von Webapplikationen oft Alternativlos. Dementsprechend hatten wir die Anforderung, für einen unserer Kunden eine Infrastruktur aufzusetzen, in dem eine Java-Applikation ausfallsicher laufen kann. Als Datenspeicher nutzt die Applikation eine MySQL-Datenbank.

Die Funktionsfähigkeit der Anwendung steht und fällt mit der Verfügbarkeit der Datenbank, also war es notwendig, die Datenbank mit entsprechender Replikation laufen zu lassen. Dazu verwenden wir MariaDB mit der Replikations-Schicht Galera mit einer Multi-Master-Replikation.

Die Applikations-Server benutzen eine aktuelle Tomcat-Version mit der entsprechenden Applikation und einem davorgeschalteten HTTP-Loadbalancer (von Amazon AWS). Der Datenbankzugriff der Java-Apps läuft aber nicht direkt auf die DB-Server sondern über eine zwischengeschaltete Instanz von HAProxy. So ist es uns möglich, Fehlerzustände der Datenbank schneller zu erkennen und auf noch intakte Nodes umzuschwenken, ohne dass die Applikation selbst Kenntnis über den Zustand der Datenbank haben muss.

Mit dieser Architektur erreichen wir eine Performance von über 1500 möglichen HTTP-Requests pro Sekunde, im Schnitt liegt die Last im Normalbetrieb bei ca. 60 Requests/s.

Schreiben Sie einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.