Azure Event Hubs: Georedundante Notfallwiederherstellung

In diesem Artikel wird das Feature für die georedundante Notfallwiederherstellung beschrieben, das Metadaten repliziert und allgemein verfügbar ist. Es beschreibt nicht das Feature für die öffentliche Vorschau der Georeplikation, das sowohl Daten als auch Metadaten repliziert. Weitere Informationen finden Sie unter Georeplikation.

Das vollständig aktive Azure Event Hubs-Clustermodell mit Verfügbarkeitszonenunterstützung bietet Resilienz gegenüber Hardware- und Rechenzentrumsausfällen. Wenn ein Notfall eintritt, bei dem eine ganze Region und alle Zonen nicht verfügbar sind, können Sie Ihre Workload und Anwendungskonfiguration mithilfe der georedundanten Notfallwiederherstellung wiederherstellen. Die georedundante Notfallwiederherstellung stellt sicher, dass die gesamte Konfiguration eines Namespace (Event Hubs, Consumergruppen und Einstellungen) ständig von einem primären Namespace in einen sekundären Namespace repliziert wird, wenn diese gekoppelt sind.

Das Feature der georedundanten Notfallwiederherstellung von Azure Event Hubs ist eine Lösung zur Notfallwiederherstellung. Die Konzepte und der Workflow, die in diesem Artikel beschrieben werden, gelten für Notfallszenarios und nicht für vorübergehende Ausfälle. Eine ausführliche Erläuterung der Notfallwiederherstellung in Microsoft Azure finden Sie in diesem Artikel. Sie können mit der georedundanten Notfallwiederherstellung jederzeit ein einmaliges Failover vom primären auf den sekundären Namespace auslösen. Bei einem Failover wird der ausgewählte Aliasname für den Namespace dem sekundären Namespace zugeordnet. Nach der Verschiebung wird die Kopplung aufgehoben. Das Failover erfolgt nach der Initiierung fast unmittelbar.

Wichtig

  • Das Feature ermöglicht die sofortige Fortsetzung von Vorgängen mit derselben Konfiguration, repliziert aber keine Ereignisdaten. Sofern der Notfall nicht zum Verlust sämtlicher Zonen geführt hat, können die nach dem Failover im primären Event Hub erhalten gebliebenen Ereignisdaten wiederhergestellt und die bisherigen Ereignisse von dort abgerufen werden, sobald der Zugriff wiederhergestellt wurde. Verwenden Sie zum Replizieren von Ereignisdaten und zum Betreiben der entsprechenden Namespaces in Aktiv/Aktiv-Konfigurationen zur Bewältigung von Ausfällen und Notfällen nicht den Featuresatz der georedundanten Notfallwiederherstellung. Befolgen Sie stattdessen die Replikationsanleitung.
  • Zuweisungen der rollenbasierten Zugriffssteuerung (Role-Based Access Control, RBAC) von Microsoft Entra für Entitäten im primären Namespace werden nicht in den sekundären Namespace repliziert. Erstellen Sie Rollenzuweisungen manuell im sekundären Namespace, um den Zugriff auf sie zu schützen.

Allgemeine Konzepte und Begriffe

Bei der Funktion zur Notfallwiederherstellung wird die Notfallwiederherstellung von Metadaten implementiert, und sie basiert auf speziellen primären und sekundären Namespaces. Die georedundante Notfallwiederherstellung ist ausschließlich für die Tarife „Standard“, „Premium“ und „Dediziert“ verfügbar. Sie müssen keine Änderungen an den Verbindungszeichenfolgen vornehmen, da die Verbindung über einen Alias hergestellt wird.

In diesem Artikel werden die folgenden Begriffe verwendet:

  • Alias: Der Name für die Konfiguration einer von Ihnen eingerichteten Notfallwiederherstellung. Der Alias stellt einen einzelnen, stabilen, vollqualifizierten Domänennamen (Fully Qualified Domain Name, FQDN) als Verbindungszeichenfolge bereit. Anwendungen verwenden diese Alias-Verbindungszeichenfolge, um eine Verbindung mit einem Namespace herzustellen.
  • Primärer/sekundärer Namespace: Die Namespaces, die dem Alias entsprechen. Der primäre Namespace ist aktiv und empfängt Nachrichten. (Dies kann ein bereits vorhandener oder ein neuer Namespace sein.) Der sekundäre Namespace ist passiv und empfängt keine Nachrichten. Die Metadaten zwischen beiden Namespaces werden synchronisiert, sodass beide nahtlos und ohne Änderung des Anwendungscodes oder der Verbindungszeichenfolge Nachrichten entgegennehmen können. Um sicherzustellen, dass nur der aktive Namespace Nachrichten empfängt, müssen Sie den Alias verwenden.
  • Metadaten: Entitäten (beispielsweise Event Hubs und Consumergruppen) sowie deren Eigenschaften des Diensts, die dem Namespace zugeordnet sind. Nur Entitäten und ihre Einstellungen werden automatisch repliziert. Nachrichten und Ereignisse werden nicht repliziert.
  • Failover: Der Vorgang zum Aktivieren des sekundären Namespace.

Unterstützte Namespacepaare

Die folgenden Kombinationen von primären und sekundären Namespaces werden unterstützt:

Primäre Namespaceebene Zulässige sekundäre Namespaceebene
Standard Standard, Dediziert
Premium Premium
Dediziert Dediziert

Wichtig

Namespaces, die sich im selben dedizierten Cluster befinden, können nicht paarweise gekoppelt werden. Namespaces, die sich in unterschiedlichen Clustern befinden, können paarweise gekoppelt werden.

Setup und Failoverablauf

Im folgenden Abschnitt finden Sie eine Übersicht über den Failoverprozess und erfahren, wie Sie das erste Failover einrichten.

Screenshot: Übersicht über den Failoverprozess.

Hinweis

Die georedundante Notfallwiederherstellung unterstützt kein automatisches Failover.

Setup

Zuerst erstellen bzw. verwenden Sie einen vorhandenen primären Namespace und einen neuen sekundären Namespace und koppeln diese anschließend. Über diese Kopplung erhalten Sie einen Alias, mit dem Sie eine Verbindung herstellen können. Da Sie einen Alias verwenden, müssen Sie keine Verbindungszeichenfolgen ändern. Nur neue Namespaces können der Failoverkopplung hinzugefügt werden.

  1. Erstellen Sie den primären Namespace.

  2. Erstellen Sie den sekundären Namespace in einer anderen Region. Dieser Schritt ist optional. Sie können den sekundären Namespace während der Erstellung der Kopplung im nächsten Schritt erstellen.

  3. Navigieren Sie im Azure-Portal zu Ihrem primären Namespace.

  4. Wählen Sie im linken Menü Georedundante Wiederherstellung und auf der Symbolleiste Kopplung initiieren aus.

    Screenshot: Seite für die Geowiederherstellung für einen Event Hubs-Namespace mit ausgewählter Schaltfläche „Kopplung initiieren“.

  5. Führen Sie auf der Seite Kopplung initiieren die folgenden Schritte aus:

    1. Wählen Sie einen vorhandenen sekundären Namespace aus, oder erstellen Sie einen in einer anderen Region. In diesem Beispiel wurde ein vorhandener Namespace ausgewählt.
    2. Geben Sie als Alias einen Alias für die georedundanten Kopplung ein.
    3. Wählen Sie anschließend Erstellen.

    Screenshot: Auswahl des sekundären Namespaces für die Kopplung.

  6. Die Seite mit dem Alias für georedundante Notfallwiederherstellung sollte angezeigt werden. Sie können auch vom primären Namespace zu dieser Seite navigieren, indem Sie im linken Menü die Option Georedundante Wiederherstellung auswählen.

    Screenshot: Seite für den Alias der Geo-Notfallwiederherstellung mit den primären und sekundären Namespaces.

  7. Wählen Sie auf der Seite Alias für georedundante Notfallwiederherstellung im linken Menü die Option Richtlinien für gemeinsamen Zugriff aus, um auf die primäre Verbindungszeichenfolge für den Alias zuzugreifen. Verwenden Sie diese Verbindungszeichenfolge anstelle der direkten Verbindungszeichenfolge zum primären bzw. sekundären Namespace.

  8. Auf der Seite Übersicht können Sie die folgenden Aktionen ausführen:

    1. Aufheben der Kopplung zwischen dem primären und sekundären Namespace. Wählen Sie auf der Symbolleiste die Option Kopplung aufheben aus.

    2. Manuelles Failover zum sekundären Namespace. Wählen Sie auf der Symbolleiste die Option Failover aus.

      Screenshot: Menüs „Kopplung aufheben“ und „Failover“ auf der Event Hubs-Seite für den Alias der Geo-Notfallwiederherstellung.

      Warnung

      Ein Failover aktiviert den sekundären Namespace und entfernt den primären Namespace aus der Kopplung für die georedundante Notfallwiederherstellung. Erstellen Sie einen weiteren Namespace, um eine neue Kopplung für die georedundante Notfallwiederherstellung zu erhalten.

Abschließend sollten Sie einige Überwachungsfunktionen hinzufügen, um zu ermitteln, ob ein Failover erforderlich ist. In den meisten Fällen ist der Dienst ein Teil eines großen Ökosystems, sodass automatische Failovers selten möglich sind, da Failovers häufig synchron mit dem restlichen Subsystem oder der Infrastruktur durchgeführt werden müssen.

Beispiel

In einem Beispiel für dieses Szenario geht es um eine POS-Lösung (Point of Sale), die entweder Nachrichten oder Ereignisse ausgibt. Event Hubs übergibt diese Ereignisse an eine Lösung für die Zuordnung oder Neuformatierung, von der dann zugeordnete Daten zur weiteren Verarbeitung an ein anderes System weitergeleitet werden. An diesem Punkt werden alle diese Systeme ggf. in derselben Azure-Region gehostet. Die Entscheidung darüber, wann für welchen Teil ein Failover durchgeführt wird, richtet sich nach dem Datenfluss in Ihrer Infrastruktur.

Sie können das Failover entweder mit Überwachungssystemen oder mit benutzerdefinierten Überwachungslösungen automatisieren. Für diese Art der Automatisierung sind aber zusätzliche Planungs- und Arbeitsschritte erforderlich, was den Rahmen dieses Artikels sprengen würde.

Failoverablauf

Im Zuge der Initiierung des Failovers müssen zwei Schritte ausgeführt werden:

  1. Bei einem weiteren Ausfall muss ein erneutes Failover möglich sein. Richten Sie daher einen weiteren passiven Namespace ein, und aktualisieren Sie die Kopplung.
  2. Übertragen Sie Nachrichten mithilfe von Pull aus dem ehemals primären Namespace, nachdem er wieder verfügbar ist. Verwenden Sie diesen Namespace danach für das reguläre Messaging außerhalb Ihrer eingerichteten geografischen Wiederherstellung, oder löschen Sie den alten primären Namespace.

Hinweis

Es wird nur die Semantik für „Fail Forward“ unterstützt. In diesem Szenario führen Sie das Failover und anschließend die Reparatur mit einem neuen Namespace durch. Ein Failback wird nicht unterstützt, z.B. in einem SQL-Cluster.

Abbildung des Failoverprozesses.

Manuelles Failover

In diesem Abschnitt erfahren Sie, wie Sie mit Azure-Portal, CLI, PowerShell, C# usw. einen manuellen Failover durchführen.

  1. Navigieren Sie im Azure-Portal zu Ihrem primären Namespace.

  2. Wählen Sie im linken Menü Geowiederherstellung aus.

  3. Manuelles Failover zum sekundären Namespace. Wählen Sie auf der Symbolleiste die Option Failover aus.

    Warnung

    Ein Failover aktiviert den sekundären Namespace und entfernt den primären Namespace aus der Kopplung für die georedundante Notfallwiederherstellung. Erstellen Sie einen weiteren Namespace, um eine neue Kopplung für die georedundante Notfallwiederherstellung zu erhalten.

Verwaltung

Falls Sie einen Fehler gemacht haben (z.B. eine Kopplung der falschen Regionen während des anfänglichen Setups), können Sie die Kopplung der beiden Namespaces jederzeit trennen. Wenn Sie die gekoppelten Namespaces als reguläre Namespaces verwenden möchten, löschen Sie den Alias.

Überlegungen

Beachten Sie Folgendes:

  1. Die georedundante Notfallwiederherstellung von Event Hubs repliziert entwurfsbedingt keine Daten. Daher können Sie den alten Offsetwert Ihres primären Event-Hubs für den sekundären Event-Hub nicht wiederverwenden. Es wird empfohlen, den Ereignisempfänger mit einer der folgenden Methoden neu zu starten:

    • EventPosition.FromStart() : Wenn Sie alle Daten auf dem sekundären Event Hub lesen möchten.
    • EventPosition.FromEnd() : Wenn Sie alle neuen Daten ab dem Zeitpunkt der Verbindung mit dem sekundären Event Hub lesen möchten.
    • EventPosition.FromEnqueuedTime(dateTime) : Wenn Sie alle Daten lesen möchten, die im sekundären Event Hub ab einem bestimmten Datum und einer bestimmten Uhrzeit empfangen wurden.
  2. Berücksichtigen Sie bei der Failoverplanung auch den Zeitfaktor. Falls beispielsweise länger als 15 bis 20 Minuten keine Konnektivität vorhanden ist, empfiehlt es sich unter Umständen, das Failover zu initiieren.

  3. Die Tatsache, dass keine Daten repliziert werden, bedeutet, dass derzeit keine aktiven Sitzungen repliziert werden. Außerdem kann es sein, dass die Duplikaterkennung und geplante Nachrichten nicht funktionieren. Neue Sitzungen, neue geplante Nachrichten und neue Duplikate funktionieren.

  4. Die Durchführung eines Failovers für eine komplexe verteilte Infrastruktur sollte mindestens einmal durchgespielt werden.

  5. Das Synchronisieren von Entitäten kann einige Zeit dauern (etwa eine Minute pro 50 bis 100 Entitäten).

  6. Einige Aspekte der Verwaltungsebene für den sekundären Namespace werden schreibgeschützt, wenn die Geowiederherstellungskopplung aktiv ist.

  7. Die Datenebene des sekundären Namespace ist schreibgeschützt, wenn die Geowiederherstellungskopplung aktiv ist. Die Datenebene des sekundären Namespace akzeptiert GET-Anforderungen, um die Überprüfung von Clientkonnektivität und Zugriffssteuerungen zu ermöglichen.

Private Endpunkte

In diesem Abschnitt finden Sie weitere Überlegungen zur Verwendung der georedundanten Notfallwiederherstellung mit Namespaces, die private Endpunkte verwenden. Informationen zur Verwendung privater Endpunkte mit Event Hubs im Allgemeinen finden Sie unter Konfigurieren privater Endpunkte.

Neue Kopplungen

Wenn Sie versuchen, eine Kopplung zwischen einem primären Namespace mit einem privaten Endpunkt und einem sekundären Namespace ohne einen privaten Endpunkt zu erstellen, wird die Kopplung nicht durchgeführt. Die Kopplung erfolgt nur, wenn sowohl der primäre als auch der sekundäre Namespace einen privaten Endpunkt aufweist. Wir empfehlen Ihnen, für den primären und den sekundären Namespace sowie für virtuelle Netzwerke, in denen private Endpunkte erstellt werden, die gleichen Konfigurationen zu verwenden.

Hinweis

Wenn Sie versuchen, den primären Namespace mit einem privaten Endpunkt und einen sekundären Namespace zu koppeln, prüft der Überprüfungsprozess lediglich, ob ein privater Endpunkt im sekundären Namespace vorhanden ist. Es wird nicht überprüft, ob der Endpunkt funktioniert oder nach dem Failover ausgeführt wird. Sie selbst müssen sicherstellen, dass der sekundäre Namespace mit dem privaten Endpunkt nach dem Failover erwartungsgemäß funktioniert.

Um zu testen, ob die Konfiguration des privaten Endpunkts für den primären und den sekundären Namespace identisch ist, senden Sie von außerhalb des virtuellen Netzwerks eine Leseanforderung (z. B. Get Event Hub) an den sekundären Namespace, und überprüfen Sie, ob der Dienst eine Fehlermeldung ausgibt.

Vorhandene Kopplungen

Wenn die Kopplung zwischen dem primären und dem sekundären Namespace bereits vorhanden ist, kann für den primären Namespace kein privater Endpunkt erstellt werden. Erstellen Sie zunächst einen privaten Endpunkt für den sekundären Namespace und dann einen privaten Endpunkt für den primären Endpunkt, um das Problem zu beheben.

Hinweis

Für den sekundären Namespace ist nur Lesezugriff möglich, Konfigurationen des privaten Endpunkts können dagegen aktualisiert werden.

Beim Erstellen einer Konfiguration für die Notfallwiederherstellung Ihrer Anwendung und Event Hubs-Namespaces müssen Sie private Endpunkte für primäre und sekundäre Event Hubs-Namespaces für die virtuellen Netzwerke erstellen, die primäre und sekundäre Instanzen der Anwendung enthalten.

Angenommen, Sie haben die beiden virtuellen Netzwerke VNET-1 und VNET-2 sowie den primären und sekundären Namespace EventHubs-Namespace1-Primary und EventHubs-Namespace2-Secondary. Sie müssen dann die folgenden Schritte ausführen:

  • Erstellen Sie in EventHubs-Namespace1-Primary zwei private Endpunkte, die Subnetze von VNET-1 und VNET-2 verwenden.
  • Erstellen Sie in EventHubs-Namespace2-Secondary zwei private Endpunkte, die die gleichen Subnetze von VNET-1 und VNET-2 verwenden.

Private Endpunkte und virtuelle Netzwerke

Der Vorteil dieses Ansatzes besteht darin, dass ein Failover auf Anwendungsebene unabhängig vom Event Hubs-Namespace erfolgen kann. Betrachten Sie die folgenden Szenarien:

Auf Anwendung beschränktes Failover: In diesem Fall ist die Anwendung nicht in VNET-1 vorhanden, wird aber in VNET-2 verschoben. Da beide privaten Endpunkte sowohl in VNET-1 als auch in VNET-2 für den primären und den sekundären Namespace konfiguriert sind, wird die Anwendung ausgeführt.

Nur Failover für Event Hubs-Namespaces: Da auch in diesem Fall beide privaten Endpunkte in beiden virtuellen Netzwerken für primäre und sekundäre Namespaces konfiguriert sind, wird die Anwendung ausgeführt.

Hinweis

Eine Anleitung zur georedundanten Notfallwiederherstellung eines virtuellen Netzwerks finden Sie unter Virtuelles Netzwerk: Geschäftskontinuität.

Rollenbasierte Zugriffssteuerung

Zuweisungen der rollenbasierten Zugriffssteuerung (Role-Based Access Control, RBAC) von Microsoft Entra für Entitäten im primären Namespace werden nicht in den sekundären Namespace repliziert. Erstellen Sie Rollenzuweisungen manuell im sekundären Namespace, um den Zugriff auf sie zu schützen.

Sehen Sie sich die folgenden Beispiele oder die Referenzdokumentation an: