Konfiguration für Lastausgleich mit hoher Verfügbarkeit
Diese Konfiguration setzt sich aus mehreren Messaging-Engines zusammen, die in einem Cluster ausgeführt werden und jeweils von einem oder mehreren Alternativservern übernommen werden können (Failover).
- Sie können einen Cluster über die Richtlinienunterstützung für Messaging-Engines einem Service Integration Bus hinzufügen und die Richtlinie "Skalierbarkeit mit hoher Verfügbarkeit" für Messaging-Engines verwenden. Bei dieser Prozedur wird für jeden Server im Cluster eine Messaging-Engine erstellt. Jede Messaging-Engine kann von einem anderen angegebenen Server im Cluster übernommen werden (Failover). In jedem Server können bis zu zwei Messaging-Engines ausgeführt werden, sodass eine geordnete Schleifenbeziehung zwischen den Servern besteht. Jede Messaging-Engine kann zurückgesetzt werden, d. h., wenn eine Messaging-Engine von einem anderen Server übernommen und der ursprüngliche Server anschließend wieder verfügbar wird, wird die Messaging-Engine automatisch wieder auf diesen Server zurückversetzt.
- Sie können einen Cluster über die Richtlinienunterstützung für Messaging-Engines einem Service Integration Bus hinzufügen und die Richtlinie "Angepasst" für Messaging-Engines verwenden. Sie können so viele Messaging-Engine wie nötig für den Cluster erstellen. Für jede Messaging-Engine, die Sie erstellen, müssen Sie die Richtlinie für Messaging-Engines so konfigurieren, dass sie das erforderliche Verhalten der Messaging-Engine unterstützt.
- Sie können einen Cluster ohne Verwendung der Richtlinienunterstützung für Messaging-Engines dem Service Integration Bus hinzufügen.
Eine Messaging-Engine wird automatisch erstellt. Anschließend fügen Sie dem Cluster weitere Messaging-Engines hinzu,
die Sie benötigen. In einer typischen Konfiguration gibt es eine Messaging-Engine für jeden Server im Cluster.
Erstellen Sie eine neue "Eins-von-N"-Stammgruppenrichtlinie für jede Messaging-Engine im Cluster.
Konfigurieren Sie die Richtlinien so, dass eine Messaging-Engine in jedem Server ausgeführt wird
und eine hohe Verfügbarkeit gewährleistet ist (z. B. dass jede Messaging-Engine
von einem angegebenen Server übernommen werden kann).
- Sie können eine sortierte Liste bevorzugter Server definieren, in denen die Messaging-Engine ausgeführt und von denen sie übernommen werden können.
- Sie können angeben, ob die Messaging-Engine in jedem Server des Clusters oder nur in den Servern aus der Liste bevorzugter Server ausgeführt werden kann.
- Sie können angeben, ob die Messaging-Engine auf einen Server zurückgesetzt werden kann, der in der Liste bevorzugter Server einen höheren Rang hat, sobald wieder ein solcher verfügbar ist.
Die Standardrichtlinie für die Serviceintegration, "Default SIBus Policy", unterstützt dieses Verhalten nicht. Deshalb müssen Sie neue Stammgruppenrichtlinien erstellen.
Dieser Konfigurationstyp bietet Verfügbarkeit, da jede Messaging-Engine von einem anderen Server übernommen werden kann, falls ein Server ausfällt. Die Konfiguration bietet Lastausgleich, weil es mehrere Messaging-Engines gibt, die den Datenverkehr über das Ziel bearbeiten, und Skalierbarkeit, weil Sie dem Cluster neue Server hinzufügen können, ohne die vorhandenen Messaging-Engines im Cluster zu beeinträchtigen.
Die folgende Abbildung zeigt eine Beispielkonfiguration dieses Typs. Es gibt drei Messaging-Engines, ME1, ME2 und ME3, mit den Datenspeichern A, B bzw. C. Die Messaging-Engines werden in einem Cluster mit drei Servern ausgeführt und teilen sich den Datenverkehr, der über das Ziel fließt. Jeder Server befindet sich auf einem separaten Knoten. Wenn einer der Knoten ausfällt, sind somit die Server auf den verbleibenden Knoten weiterhin verfügbar.
Jede Messaging-Engine hat eine bevorzugte Position und eine sekundäre Position. Jeder Server im Cluster enthält die Definition von zwei Messaging-Engines, die in ihm ausgeführt werden können, und erstellt eine Instanz jeder Messaging-Engine, sodass eine Messaging-Engine ihn als bevorzugte Position verwenden kann und die andere Instanz aktiviert werden kann, falls ein anderer Server ausfällt. Die Messaging-Engine "ME1" wird im Server "server1" ausgeführt und kann beim Ausfall von "server1" vom Server "server2" übernommen werden. Die Messaging-Engine "ME2" wird in "server2" ausgeführt und kann vom Server "server3" übernommen werden. Die Messaging-Engine "ME3" wird im Server "server3" ausgeführt und kann vom Server "server1" übernommen werden.
Der Nachrichtenspeicher jeder Messaging-Engine muss für den bevorzugten Server und den sekundären Server zugänglich sein. Wie dieses Ziel erreicht werden kann, richtet sich nach der verwendeten Datenspeichertopologie. Wenn Sie einen vernetzten Datenbankserver verwenden, müssen Sie sicherstellen, dass der Datenbankserver über alle Server im Cluster, in denen die Messaging-Engine ausgeführt werden kann, zugänglich ist. Alternativ können Sie ein externes Framework für hohe Verfügbarkeit verwenden, um die Datenbank über eine gemeinsam genutzte Platte zu verwalten.
Diese Beispielkonfiguration ist die Konfiguration, die erstellt wird, wenn Sie die Richtlinienunterstützung für Messaging-Engines und die Richtlinie "Skalierbarkeit mit hoher Verfügbarkeit" für einen Cluster mit drei Servern verwenden.

Die folgende Abbildung zeigt, was bei einem Ausfall von "server1" geschieht. Die Messaging-Engine "ME1" wird im nächsten Server aus der Liste der bevorzugten Server für diese Messaging-Engine, d. h. im Server "server2", aktiviert. Die Messaging-Engine "ME2" wird weiterhin in "server2" und die Messaging-Engine "ME3" weiterhin in "server3" ausgeführt.

Die folgende Abbildung zeigt, was passiert, wenn "server1" wieder verfügbar ist und "server2" ausfällt. Die Messaging-Engine "ME1" wird im Server "server1", dem ersten Server aus der Liste der bevorzugten Server für diese Messaging-Engine, aktiviert, weil für die Messaging-Engine "ME1" die Option für Zurücksetzung definiert ist. Die Messaging-Engine "ME2" wird auf dem nächsten Server aus der Liste der bevorzugten Server für diese Messaging-Engine, d. h. "server3", aktiviert. Die Messaging-Engine "ME3" wird weiterhin im Server "server3" ausgeführt.

Die vordefinierte Richtlinie "Skalierbarkeit mit hoher Verfügbarkeit" für Messaging-Engines erstellt eine Konfiguration, die Aspekte der Skalierbarkeit und der hohen Verfügbarkeit unterstützt. Die folgende Abbildung zeigt eine weitere Beispielkonfiguration, die hohe Verfügbarkeit und Lastausgleich mit Priorität bei der Nachrichtenübertragung bietet. Es gibt zwei Messaging-Engines, ME1 und ME2, mit den Datenspeichern A und B, die in einem Cluster mit drei Servern ausgeführt werden und sich den Datenverkehr teilen, der über ein Ziel fließt. Im normalen Betrieb wird die Messaging-Engine "ME1" im Server "server1" und die Messaging-Engine "ME2" im Server "server2" ausgeführt. Der Server "server3" ist eine Failoverposition für beide Messaging-Engines. Diese Konfiguration wird als "N+1"-Konfiguration bezeichnet, weil es einen Ersatzserver gibt.

Die Liste der bevorzugten Server für die Messaging-Engine "ME1" ist "server1, server3", und die Liste der bevorzugten Server für die Messaging-Engine "ME2" ist "server2, server3". Der Vorteil dieser Konfiguration besteht darin, dass beim Ausfall eines Servers in jedem verbleibenden Server nur eine einzige Messaging-Engine ausgeführt wird. Der Nachteil dieser Konfiguration sind die Kosten für den Ersatzserver. Für eine Konfiguration dieses Typs können Sie die Richtlinie "Angepasst" für Messaging-Engines verwenden.
Wenn Sie die Richtlinienunterstützung für Messaging-Engines nicht verwenden und die Messaging-Engine bevorzugte Server verwenden soll, müssen Sie einen oder mehrere bevorzugte Server für die Messaging-Engine angeben. Wenn ein bevorzugter Server verfügbar ist, führt der High Availability Manager (HAManager) die Messaging-Engine in diesem Server aus. Wenn kein bevorzugter Server verfügbar ist, wird die Messaging-Engine in einem beliebigen anderen verfügbaren Server ausgeführt. Sie können auch die Option Zurücksetzen in der Richtlinie festlegen, sodass der HAManager die Messaging-Engine auf einen bevorzugten Server zurücksetzt, sobald wieder ein solcher verfügbar ist.