Erweiterte Hochverfügbarkeitsübertragung mit Hermes

  • Freigeben Version: Zurich
  • Aktualisiert 31. Juli 2025
  • 2 Minuten Lesedauer
  • Erfahren Sie, wie Nachrichten in Hermes während des normalen Betriebs, der Übertragung von Advanced High Availability (AHA) und Failover-Szenarien erzeugt und verbraucht werden.

    ServiceNow-Produktionsinstanzen arbeiten in geografisch getrennten Rechenzentren. Jedes Rechenzentrum ist mit einem anderen Rechenzentrum gekoppelt, um Redundanz mit Failover-Unterstützung zu bieten. Ein Rechenzentrum ist als aktive Seite und das andere als Standby festgelegt. Beispielsweise kann Ihre Instanz in den DC1- und DC2-Rechenzentren mit DC1 als aktiver Seite konfiguriert werden.

    Mit der Aktivierung von StreamConnect, LES oder IDR wird in beiden Rechenzentren ein neuer Hermes Kafka-Cluster bereitgestellt. Um eine hohe Verfügbarkeit zu gewährleisten und Failover-Unterstützung bereitzustellen, verwendet Hermes ein Paar aktiver/aktiver Kafka-Cluster, einen in jedem Rechenzentrum.

    In der Nähe des Clusters
    Der Hermes-Kafka-Cluster, der sich im selben Rechenzentrum wie die Instanz befindet, ist der nahe-Cluster.
    FAR-Cluster
    Der Cluster, der im anderen Rechenzentrum ausgeführt wird, ist der FAR-Cluster. Das Gegenteil gilt für die andere Instanz. Der nahe gelegene Cluster befindet sich in seinem Rechenzentrum, und der entfernte Cluster wird im anderen Rechenzentrum ausgeführt.
    Abbildung : 1. Nahe und fern Hermes-Kafka-Cluster
    Hermes-Kafka-Cluster in der Nähe und Ferne sind relativ zur Instanz.

    Normaler Betrieb

    Unter normalen Betriebsbedingungen werden Nachrichten von der Instanz oder einem externen Client an den Near Hermes-Cluster erstellt. Wenn Ihre Instanz beispielsweise im DC1-Rechenzentrum ausgeführt wird, werden Nachrichten an den Near Hermes-Cluster in DC1 erstellt. Nachrichten, die von einem externen Client gesendet werden, werden über einen Port im 400x-Bereich an den Cluster erstellt, wie in der Hersteller-Bootstrap-URL definiert.

    Wenn ein Thema in Hermes erstellt wird, wird es in beiden Clustern erstellt. Zwei Verbraucherprozesse werden verwendet, um Nachrichten aus beiden Clustern zu verbrauchen, aber unter normalen Umständen verbraucht nur ein einziger Verbraucher aktiv. Jeder Verbraucher muss unterschiedliche Bootstrap-URLs verwenden, eine im 410x-Bereich und die andere im 420x-Bereich.

    Failover-Prozess

    Unter den folgenden Umständen kann sich der Cluster, in dem Nachrichten erstellt werden, ändern.

    Übertragung der Instanz Advanced High Availability (AHA)
    Wenn eine Instanz einer AHA-Übertragung unterzogen wird, wird die Standby-Instanz aktiv, und die zuvor aktive Instanz wird zum Standby-Modus. In diesem Szenario wechselt die Instanz zu mithilfe des Hermes-Clusters auf der neu aktiven Seite.

    Wenn die Instanz beispielsweise in DC1- und DC2-Rechenzentren mit DC1 als aktuell aktiver Seite ausgeführt wird und eine AHA-Übertragung stattfindet, wechselt die Instanz zu „Hermes-Cluster in DC2“.

    Hermes-Failover
    Die Instanz überwacht aktiv die Integrität des Hermes-Clusters. Wenn Probleme mit dem Cluster erkannt werden, wechselt er in den Failover-Modus. In diesem Fall wird der Hermes-Cluster in der Nähe der Standby-Instanz verwendet, bis die Instanz erkennt, dass der nahe Hermes-Cluster wiederhergestellt wurde.

    Wenn die Instanz beispielsweise in DC1- und DC2-Rechenzentren mit DC1 als aktiver Seite ausgeführt wird, wird der Hermes-Cluster in DC1 verwendet. Wenn ein Problem mit dem Hermes-Cluster in DC1 erkannt wird, wechselt er in den Hermes-Failover-Modus und beginnt mit der Erstellung von Nachrichten an den DC2-Cluster, bis der DC1-Cluster erneut fehlerfrei ist. Nach der Wiederherstellung wird die Verwendung des Hermes-Clusters in DC1 fortgesetzt.

    Wenn ein Failover auftritt und Verbraucher nachlassen, können beide Verbraucher potenziell Nachrichten verbrauchen, bis einer der Verbraucher die Verarbeitung abgeschlossen hat. Wenn die aktuelle aktive Seite beispielsweise DC1 ist, verarbeitet der Verbraucher, der von DC1 verbraucht, aktiv Nachrichten. Wenn im DC1-Cluster ein Problem auftritt, das zu einem Failover zum DC2-Cluster führt, beginnt der Verbraucher, der aus dem DC2-Cluster verbraucht, mit der Verarbeitung von Nachrichten. Wenn der Verbraucher, der aus dem DC1-Cluster verbrauchte, nachließ, verbrauchen beide Verbraucher weiterhin Nachrichten, bis der DC1-Verbraucher aufgeholt ist.

    Reihenfolge wird beibehalten

    Wenn die Nachrichtenreihenfolge beibehalten werden muss, liegt es in der Verantwortung der Verbraucheranwendung, dies zu verwalten. Beachten Sie, dass die globale Reihenfolge von Nachrichten davon abhängt, wie das Thema in Kafka definiert ist.