Freigeben über


Konfigurieren der aktiven Georeplikation für Azure Managed Redis (Vorschau)-Instanzen

In diesem Artikel erfahren Sie, wie Sie einen Cache mit aktiver Georeplikation über das Azure-Portal konfigurieren.

Die aktive Georeplikation gruppiert bis zu fünf Azure Managed Redis (Vorschau)-Instanzen in einem einzelnen Cache, der sich über mehrere Azure-Regionen erstreckt. Alle Instanzen fungieren als lokaler primärer Cache. Eine Anwendung entscheidet, welche Instanz bzw. Instanzen für Lese- und Schreibanforderungen verwendet werden sollen.

Hinweis

Die Datenübertragung zwischen Azure-Regionen wird mit den Standardbandbreitensätzen abgerechnet.

Funktionsweise der aktiven Georeplikation

Bei der aktiven Georeplikation werden konfliktfreie replizierte Datentypen (CRDTs) verwendet, um Daten nahtlos über Redis-Instanzen zu verteilen, die über Kontinente verteilt werden können. Diese Instanzen werden in einer aktiven Konfiguration verbunden, bei der Schreibvorgänge in eine Instanz automatisch in den anderen Instanzen in derselben Georeplikationsgruppe widergespiegelt werden. Diese bidirektionale Datenreplikation unterscheidet sich von unidirektionalen aktiv-passiven Replikationsansätzen, bei denen Daten vom Primär- auf ein Georeplikat repliziert werden, nicht jedoch in die andere Richtung. Dies ist ein leistungsfähiges Tool, das häufig auf verschiedene Arten verwendet wird:

  • Bereitstellen der lokalen Latenz durch die Verteilung der Zwischenspeicherung näher an die Benutzer. Mithilfe eines Netzwerks aktiver geo-replizierter Redis-Instanzen können Sie Caches geografisch näher an Benutzer in den einzelnen Regionen platzieren, wodurch die Latenz reduziert und die App-Leistung verbessert wird.
  • Synchronisieren globaler Anwendungen. Da geo-replizierte Caches wie eine einzelne Redis-Instanz angezeigt werden, können Sie Daten global verteilen, ohne Daten nach Regionen segmentieren zu müssen. Sie können z. B. einen einzelnen Redis-sortierten -Satz verwenden, um ein Gaming-Leaderboard für alle Benutzer weltweit bereitzustellen, anstatt eine separate Bestenliste für jede geografische Region bereitzustellen.
  • Reduzierung von Ausfallzeiten und Risiken von regionalen Ausfällen. Da jede Redis-Instanz in der Georeplikationsgruppe ständig mit den neuesten Daten aus den anderen Instanzen in der Gruppe aktualisiert wird, werden die Daten im Falle eines regionalen Ausfalls gut beibehalten. Anwendungen können vorübergehend zu einer der anderen Instanzen in der Gruppe wechseln, und wenn die Region wieder online ist, wird die Redis-Instanz automatisch mit Daten aus den anderen geo-replizierten Caches erneut geladen.

Eine detailliertere Aufschlüsselung der Funktionsweise der aktiven Georeplikation finden Sie unter Aktive-Aktive Geo-Distribution (CRDTS-basiert)

Umfang der Verfügbarkeit

Tarif Arbeitsspeicheroptimiert, Ausgeglichen, Für Compute optimiert Flash-optimiert
Verfügbar Ja (außer B0 und B1) Ja

Wichtig

Die SKUs „Balanced B0“ und „B1“ unterstützen keine aktive Georeplikation.

Voraussetzungen für die aktive Georeplikation

Bei der Verwendung der aktiven Georeplikation gibt es einige Einschränkungen:

  • Die aktive Georeplikation wird nur unterstützt, wenn Azure Managed Redis in einer Hochverfügbarkeitskonfiguration (d. h. die Replikation) verwendet wird.
  • Nur die Module RediSearch und RedisJSON werden unterstützt.
  • Auf der Ebene Flash Optimized kann nur die Entfernungsrichtlinie Keine Entfernung verwendet werden. Alle Entfernungs-Richtlinien werden auf den anderen Ebenen unterstützt.
  • Datenpersistenz wird nicht unterstützt, da die aktive Georeplikation eine hervorragende Erfahrung bietet.
  • Alle Caches innerhalb einer Georeplikationsgruppe müssen dieselbe Konfiguration aufweisen. Beispielsweise müssen alle Caches dieselbe SKU, Kapazität, Entfernungsrichtlinie, Clusterrichtlinie, TLS-Einstellung und dieselben Module aufweisen.
  • Wenn eine Instanz in einer Georeplikationsgruppe skaliert wird, müssen die anderen Instanzen in dieser Gruppe auf dieselbe Größe skaliert werden, bevor eine weitere Skalierung erfolgen kann. Weitere Informationen finden Sie unter Skalierungsinstanzen in einer Georeplikationsgruppe.
  • Sie können die Redis-Befehle FLUSHALL und FLUSHDB nicht verwenden, wenn Sie die aktive Georeplikation verwenden. Durch das Verbieten der Befehle wird das unbeabsichtigte Löschen von Daten verhindert. Verwenden Sie stattdessen den Leerungsvorgang.

Erstellen von oder Beitreten zu einer aktiven Georeplikationsgruppe

  1. Wählen Sie beim Erstellen einer neuen Azure Managed Redis-Ressource die Registerkarte Erweitert aus. Schließen Sie den ersten Teil des Formulars einschließlich der Clusteringrichtlinie ab. Weitere Informationen zur Auswahl der Clustering-Richtliniefinden Sie unter Clustering in Azure Managed Redis.

  2. Wählen Sie Konfigurieren aus, um die aktive Georeplikation einzurichten.

    Screenshot der Registerkarte „Erweitert“ der Seite „Neuen Redis Cache erstellen“.

  3. Erstellen Sie eine neue Replikationsgruppe für eine erste Cache-Instanz, oder wählen Sie eine vorhandene Replikationsgruppe aus der Liste aus.

    Screenshot mit Replikationsgruppen.

  4. Wählen Sie Konfigurieren aus, um den Vorgang abzuschließen.

  5. Warten Sie, bis der erste Cache erfolgreich erstellt wurde. Nach Abschluss des Vorgangs wird die Einstellung Aktive Georeplikation als Konfiguriert angezeigt. Wiederholen Sie die obigen Schritte für jede Cache-Instanz in der Georeplikationsgruppe.

    Screenshot, der zeigt, dass aktive Georeplikation konfiguriert ist.

Hinzufügen einer vorhandenen Instanz zu einer aktiven Georeplikationsgruppe

Um einer aktiven Georeplikationsgruppe eine vorhandene Cache-Instanz hinzuzufügen, können Sie die REST-API verwenden, um eine Erzwingungsaktion auszuführen.

Alle Daten in der zu verknüpfenden Cache-Instanz werden verworfen. Die Instanz ist auch für mehrere Minuten beim Beitritt zur Georeplikationsgruppe vorübergehend nicht verfügbar. Portal- und CLI-Unterstützung sind für dieses Feature noch nicht verfügbar.

Entfernen aus einer aktiven Georeplikationsgruppe

Löschen Sie einfach die Instanz, um eine Cache-Instanz aus einer aktiven Georeplikationsgruppe zu entfernen. Die verbleibenden Instanzen konfigurieren sich dann automatisch selbst neu.

Die aktive Georeplikation ist ein leistungsstarkes Feature, um die Verfügbarkeit bei Verwendung von Azure Managed Redis erheblich zu steigern. Sie sollten Ihre Caches allerdings für einen möglichen Regionsausfall vorbereiten.

Hier finden Sie einige Tipps:

  • Geben Sie im Voraus an, zu welchem anderen Cache in der Georeplikationsgruppe gewechselt werden soll, wenn eine Region ausfällt.
  • Stellen Sie sicher, dass Firewalls so konfiguriert sind, dass alle Anwendungen und Clients auf den angegebenen Ausweichcache zugreifen können.
  • Jeder Cache in der Georeplikationsgruppe verfügt über einen eigenen Zugriffsschlüssel. Bestimmen Sie, wie die Anwendung zu verschiedenen Zugriffsschlüsseln wechselt, wenn sie auf einen Backup-Cache zugreift.
  • Wenn ein Cache in der Georeplikationsgruppe ausfällt, sammeln sich in allen Caches in der Georeplikationsgruppe Metadaten an. Die Metadaten können erst verworfen werden, wenn Schreibvorgänge wieder mit allen Caches synchronisiert werden können. Sie können die Ansammlung von Metadaten verhindern, indem Sie für den ausgefallenen Cache die Aufhebung der Verknüpfung erzwingen. Erwägen Sie die Überwachung des verfügbaren Arbeitsspeichers im Cache und die Aufhebung der Verknüpfung bei hoher Arbeitsspeicherauslastung (insbesondere bei schreibintensiven Workloads).

Sie können auch ein Trennschalter-Muster verwenden. Verwenden Sie das Muster, um Datenverkehr automatisch von einem Cache mit ausgefallener Region an einen Ausweichcache in der gleichen Georeplikationsgruppe umzuleiten. Verwenden Sie Azure-Dienste wie Azure Traffic Manager oder Azure Load Balancer, um die Umleitung zu ermöglichen.

Falls einer der Caches in Ihrer Replikationsgruppe aufgrund eines Ausfalls der Region nicht verfügbar ist, können Sie das Entfernen des nicht verfügbaren Cache aus der Replikationsgruppe erzwingen.

Entfernen Sie den nicht verfügbaren Cache, da die verbleibenden Caches in der Replikationsgruppe damit beginnen, die Metadaten zu speichern, die nicht für den nicht verfügbaren Cache freigegeben wurden. In diesem Fall kann es sein, dass für die verfügbaren Caches in Ihrer Replikationsgruppe nicht genügend Arbeitsspeicher verfügbar ist.

  1. Wechseln Sie zum Azure-Portal, und wählen Sie einen der Caches in der Replikationsgruppe aus, der noch verfügbar ist.

  2. Wählen Sie im Menü „Ressource“ auf der linken Seite die Option Aktive Georeplikation aus, um die Einstellungen im Arbeitsbereich anzuzeigen.

    Screenshot der aktiven Georeplikationsgruppe.

  3. Wählen Sie den Cache aus, für den Sie das Aufheben der Verknüpfung erzwingen müssen, indem Sie das Kontrollkästchen aktivieren.

  4. Wählen Sie Aufheben der Verknüpfung erzwingen und dann OK aus, um dies zu bestätigen.

    Screenshot des Aufhebens der Verknüpfung in der aktiven Georeplikation.

  5. Nachdem die Verfügbarkeit der betroffenen Region wiederhergestellt wurde, müssen Sie den betroffenen Cache löschen und neu erstellen, um ihn ihrer Replikationsgruppe wieder hinzuzufügen.

Einrichten der aktiven Georeplikation mithilfe der Azure CLI oder PowerShell

Azure CLI

Verwenden Sie die Azure CLI zum Erstellen eines neuen Caches und einer neuen Georeplikationsgruppe oder zum Hinzufügen eines neuen Caches zu einer vorhandenen Georeplikationsgruppe. Weitere Informationen finden Sie unter az redisenterprise create.

Erstellen einer neuen Azure Managed Redis-Instanz in einer neuen Georeplikationsgruppe mithilfe der Azure CLI

In diesem Beispiel wird eine neue Azure Managed Redis Balanced B10-Instanz namens Cache1 in der Region Ost-USA erstellt. Anschließend wird der Cache zu einer neuen aktiven Georeplikationsgruppe namens replicationGroup hinzugefügt:

az redisenterprise create --location "East US" --cluster-name "Cache1" --sku "Balanced_B10" --resource-group "myResourceGroup" --group-nickname "replicationGroup" --linked-databases id="/subscriptions/34b6ecbd-ab5c-4768-b0b8-bf587aba80f6/resourceGroups/myResourceGroup/providers/Microsoft.Cache/redisEnterprise/Cache1/databases/default"

Um die aktive Georeplikation ordnungsgemäß zu konfigurieren, muss die ID der erstellten Cache-Instanz mit dem --linked-databases-Parameter hinzugefügt werden. Das Format der ID ist:

/subscriptions/<your-subscription-ID>/resourceGroups/<your-resource-group-name>/providers/Microsoft.Cache/redisEnterprise/<your-cache-name>/databases/default

Erstellen einer neuen Azure Managed Redis-Instanz in einer vorhandenen Georeplikationsgruppe mithilfe der Azure CLI

In diesem Beispiel wird eine neue Balanced B10-Cache-Instanz namens Cache2 in der Region „USA, Westen“ erstellt. Anschließend fügt das Skript den Cache der aktiven Georeplikationsgruppe replicationGroup hinzu, die in einer vorherigen Prozedur erstellt wurde. Auf diese Weise wird sie in einer Aktiv/Aktiv-Konfiguration mit Cache1 verknüpft.

az redisenterprise create --location "West US" --cluster-name "Cache2" --sku "Balanced_B10" --resource-group "myResourceGroup" --group-nickname "replicationGroup" --linked-databases id="/subscriptions/34b6ecbd-ab5c-4768-b0b8-bf587aba80f6/resourceGroups/myResourceGroup/providers/Microsoft.Cache/redisEnterprise/Cache1/databases/default" --linked-databases id="/subscriptions/34b6ecbd-ab5c-4768-b0b8-bf587aba80f6/resourceGroups/myResourceGroup/providers/Microsoft.Cache/redisEnterprise/Cache2/databases/default"

Wie zuvor müssen Sie sowohl Cache1 als auch Cache2 mithilfe des --linked-databases-Parameters auflisten.

Azure PowerShell

Verwenden Sie Azure PowerShell zum Erstellen einer neuen Cache- und Georeplikationsgruppe oder zum Hinzufügen eines neuen Caches zu einer vorhandenen Georeplikationsgruppe. Weitere Informationen finden Sie unter New-AzRedisEnterpriseCache.

Erstellen einer neuen Azure Managed Redis-Instanz in einer neuen Georeplikationsgruppe mithilfe von PowerShell

In diesem Beispiel wird eine neue Azure Managed Redis Balanced B10-Cache-Instanz namens Cache1 in der Region Ost-USA erstellt. Anschließend wird der Cache zu einer neuen aktiven Georeplikationsgruppe namens replicationGroup hinzugefügt:

New-AzRedisEnterpriseCache -Name "Cache1" -ResourceGroupName "myResourceGroup" -Location "East US" -Sku "Balanced_B10" -GroupNickname "replicationGroup" -LinkedDatabase '{id:"/subscriptions/34b6ecbd-ab5c-4768-b0b8-bf587aba80f6/resourceGroups/myResourceGroup/providers/Microsoft.Cache/redisEnterprise/Cache1/databases/default"}'

Um die aktive Georeplikation ordnungsgemäß zu konfigurieren, muss die ID der erstellten Cache-Instanz mit dem -LinkedDatabase-Parameter hinzugefügt werden. Das Format der ID ist:

/subscriptions/<your-subscription-ID>/resourceGroups/<your-resource-group-name>/providers/Microsoft.Cache/redisEnterprise/<your-cache-name>/databases/default

Erstellen einer neuen Azure Managed Redis-Instanz in einer vorhandenen Georeplikationsgruppe mithilfe von PowerShell

In diesem Beispiel wird eine neue Balanced B10-Cache-Instanz namens Cache2 in der Region „USA, Westen“ erstellt. Anschließend fügt das Skript den Cache der aktiven Georeplikationsgruppe „replicationGroup“ hinzu, die in der vorherigen Prozedur erstellt wurde. Das Ergebnis sind die beiden Caches Cache1 und Cache2, die in einer aktiven Konfiguration verknüpft sind.

New-AzRedisEnterpriseCache -Name "Cache2" -ResourceGroupName "myResourceGroup" -Location "West US" -Sku "Balanced_B10" -GroupNickname "replicationGroup" -LinkedDatabase '{id:"/subscriptions/34b6ecbd-ab5c-4768-b0b8-bf587aba80f6/resourceGroups/myResourceGroup/providers/Microsoft.Cache/redisEnterprise/Cache1/databases/default"}', '{id:"/subscriptions/34b6ecbd-ab5c-4768-b0b8-bf587aba80f6/resourceGroups/myResourceGroup/providers/Microsoft.Cache/redisEnterprise/Cache2/databases/default"}'

Wie zuvor müssen Sie sowohl Cache1 als auch Cache2 mithilfe des -LinkedDatabase-Parameters auflisten.

Skalieren von Instanzen in einer Georeplikationsgruppe

Es ist möglich, Instanzen zu skalieren, die für die Verwendung der aktiven Georeplikation konfiguriert sind. Eine Georeplikationsgruppe mit einer Kombination aus verschiedenen Cachegrößen kann jedoch Probleme verursachen. Um zu verhindern, dass diese Probleme auftreten, müssen alle Caches in einer Georeplikationsgruppe dieselbe Größe und Leistungsstufe aufweisen.

Da die Skalierung eine Änderung der Größe oder Stufe erfordert und es schwierig ist, alle Instanzen in der Georeplikationsgruppe gleichzeitig zu skalieren, verfügt Azure Managed Redis über einen Sperrmechanismus. Wenn Sie eine Instanz in einer Georeplikationsgruppe skalieren, wird die zugrunde liegende VM skaliert, der verfügbare Arbeitsspeicher wird jedoch auf die Originalgröße begrenzt, bis die anderen Instanzen ebenfalls hochskaliert wurden. Außerdem werden alle anderen Skalierungsvorgänge für die verbleibenden Instanzen blockiert, bis sie der gleichen Konfiguration entsprechen wie der erste zu skalierende Cache.

Skalierungsbeispiel

Angenommen, Sie verfügen über drei Instanzen in Ihrer Georeplikationsgruppe, die alle arbeitsspeicheroptimierte M10-Instanzen sind:

Der Instanzname Redis00 Redis01 Redis02
type Arbeitsspeicheroptimiert M10 Arbeitsspeicheroptimiert M10 Arbeitsspeicheroptimiert M10

Angenommen, Sie möchten jede Instanz in dieser Georeplikationsgruppe auf eine für Compute optimierte X20-Instanz skalieren. In diesem Fall würden Sie zuerst einen der Caches auf X20 skalieren:

Der Instanzname Redis00 Redis01 Redis02
type Für Compute optimiert X20 Arbeitsspeicheroptimiert M10 Arbeitsspeicheroptimiert M10

Zu diesem Zeitpunkt können die Instanzen Redis01 und Redis02 nur eine für Compute optimierte X20-Instanz skalieren. Alle anderen Skalierungsvorgänge werden blockiert.

Hinweis

Für die Instanz Redis00 wird zu diesem Zeitpunkt die weitere Skalierung nicht blockiert. Sie wird jedoch blockiert wenn entweder Redis01 oder Redis02 skaliert wird, um eine für Compute optimierte X20-Instanz zu sein.

Nachdem alle Instanzen auf dieselbe Ebene und Größe skaliert wurden, werden alle Skalierungssperren aufgehoben:

Der Instanzname Redis00 Redis01 Redis02
type Für Compute optimiert X20 Für Compute optimiert X20 Für Compute optimiert X20

Leerung

Aufgrund der Möglichkeit eines versehentlichen Datenverlusts können Sie die Redis-Befehle FLUSHALL und FLUSHDB nicht für eine Cache-Instanz verwenden, die sich in einer Georeplikationsgruppe befindet. Verwenden Sie stattdessen die Schaltfläche Caches leeren oben im Arbeitsbereich Aktive Georeplikation.

Screenshot: „Aktive Georeplikation“ im Menü „Ressource“ ausgewählt und die Funktion „Caches leeren“ mit einem roten Rahmen.

Leeren von Caches mit der Azure CLI oder PowerShell

Die Azure CLI und PowerShell können auch verwendet werden, um einen Leerungsvorgang auszulösen. Weitere Informationen zur Verwendung der Azure CLI finden Sie unter az redisenterprise database flush. Weitere Informationen zur Verwendung von PowerShell finden Sie unter Invoke-AzRedisEnterpriseCacheDatabaseFlush.

Wichtig

Seien Sie vorsichtig, wenn Sie das Feature Caches leeren verwenden. Wenn Sie die Schaltfläche auswählen, werden alle Daten aus dem aktuellen Cache und aus ALLEN verknüpften Caches in der Georeplikationsgruppe entfernt.

Verwalten Sie den Zugriff auf die Funktion mithilfe der rollenbasierten Zugriffssteuerung in Azure. Nur autorisierten Benutzer*innen sollte Zugriff zum Leeren aller Caches gewährt werden.

Nächste Schritte