Skalierbare Hochverfügbarkeitscluster mit JBoss AS 7 und EAP 6

Übersicht

Im kürzlich erschienenen Blog-Post Clustering im JBoss AS 7/EAP 6 haben wir gezeigt, wie in der neuen EAP 6 und im JBoss AS 7 einfaches Clustering verwendet werden kann. Die EAP 6 ist im Grunde genommen ein AS 7 mit offiziellem RedHat-Support. Der Cluster, den wir in diesem Post verwendet haben, war relativ klein und schlicht. Dieser Post behandelt deutlich komplexere Cluster-Strukturen, wie man diese baut und wie man den neuen Domain-Mode für Cluster verwendet. Es gibt viele Wege größere JBoss Cluster-Umgebungen zu bauen und zu verwalten. Wir werden zwei Möglichkeiten zeigen, um das zu erreichen: Die eine verwendet Separierungstechniken, die auch für ältere JBoss-Versionen verwendet werden können und die andere nutzt ein Infinispan-Feature, das Distribution genannt wird.

Skalierbarkeit vs. Verfügbarkeit

Die größte Schwierigkeit beim Bauen eines Clusters ist es, sowohl hohe Verfügbarkeit als auch Skalierbarkeit zu erreichen.

Verfügbarkeit für einen Cluster bedeutet: Wenn ein Knoten ausfällt werden alle Sessions dieses Knotens nahtlos von einem anderen Knoten übernommen. Dies kann durch Session-Replikation erreicht werden. Session-Replikation ist vorkonfiguriert und aktiviert im ha Profil in der Datei domain.xml. Flache Replikation bedeutet, dass alle Sessions auf alle anderen Knoten kopiert werden: Bei vier Knoten mit je 1 GB Speicher kann der Cluster nur 1 GB Speicher nutzen, weil alle Knoten jeweils Kopien der anderen Knoten speichern. Der Cluster wird also nicht 4 * 1 GB = 4 GB Speicher haben. Wenn man weitere Knoten hinzufügt erhält man nicht mehr Speicher, man verliert sogar Speicher durch den anfallenden Overhead der Replikation. Allerdings erhält man eine höhere Verfügbarkeit und noch wichtiger: mehr Netzwerkverkehr ebenfalls verursacht durch den Overhead der Replikation (alle Änderungen müssen auf alle anderen Knoten verteilt werden). Diese Cluster-Topologie nennen wir vollständige Replikation.
Weiterlesen

Verwalten von Clusterknoten im Domain-Mode des JBoss AS 7 und EAP 6

Der erste Post dieser Serie hat die grundlegenden Konzepte hinter dem Clustering mit JBoss AS 7 und EAP 6 behandelt. Wir haben erklärt, wie Clustering für eine einfache Java EE-Anwendung verwendet werden kann und haben eine einfache Cluster-Umgebung im Standalone-Mode aufgesetzt. In diesem Post erklären wir jetzt den Domain-Mode und wie man Cluster-Umgebungen mit Hilfe von Managed-Domains verwaltet.

Übersicht

Eine Managed-Domain umfasst mehrere Hosts mit zentralisierten Administrations- und Verwaltungsrichtlinien. Jeder Host, der im Domain-Mode läuft kann mehrere Server-Instanzen enthalten, die zu einer Domäne gehören. Der Domain-Mode ist einer von zwei möglichen Betriebsmodi der EAP 6 bzw. des JBoss AS 7. Der andere zur Wahl stehende Modus ist der Standalone-Mode. Ein JBoss Application-Server, der im Standalone-Mode betrieben wird, ist ein unabhängiger Prozess. Dieser Modus ähnelt denen früherer Versionen des JBoss Application-Servers. Die unterschiedlichen Betriebsmodi haben keinen Einfluss auf die Fähigkeiten des Application-Servers, aber darauf, wie ein oder mehrere Server verwaltet werden. Der Domain-Mode ist also komplett unabhängig vom Clustering. Allerdings stellt er viele nützliche Features zur Verwaltung von geclusterten Umgebungen zur Verfügung, beispielsweise Abwicklung von Deployments von mehreren Instanzen. Wenn zum Beispiel der JBoss AS 7 im Standalone-Mode läuft, unterstützt er die früheren Farming-Deployment-Fähigkeiten nicht mehr. Dies kann mit den Domain-Mode-Fähigkeiten erreicht werden, und natürlich gibt es auch Features wie das Starten und Stoppen von Servern von einer einzigen Konsole. Das macht das Arbeiten mit geclusterten Umgebungen einfacher.

Weiterlesen