Delen via


Actieve geo-replicatie configureren voor Azure Managed Redis-exemplaren (preview)

In dit artikel leert u hoe u een actieve geo-gerepliceerde cache configureert met behulp van Azure Portal.

Actieve geo-replicatie groepeert maximaal vijf exemplaren van Azure Managed Redis (preview) in één cache die zich in Azure-regio's bevindt. Alle exemplaren fungeren als de lokale, primaire caches. Een toepassing bepaalt welke instanties of exemplaren moeten worden gebruikt voor lees- en schrijfaanvragen.

Notitie

Gegevensoverdracht tussen Azure-regio's wordt in rekening gebracht tegen de standaardbandbreedtetarieven.

Hoe actieve geo-replicatie werkt

Actieve geo-replicatie maakt gebruik van conflictvrije gerepliceerde gegevenstypen (CRDT's) om gegevens naadloos te distribueren over Redis-exemplaren die kunnen worden gedistribueerd over continenten. Deze exemplaren zijn verbonden in een actief-actief-configuratie, waarbij schrijfbewerkingen naar één exemplaar automatisch worden weerspiegeld in de andere exemplaren in dezelfde geo-replicatiegroep. Deze bidirectionele gegevensreplicatie verschilt van unidirectionele actief-passieve replicatiemethoden, waarbij gegevens worden gerepliceerd van de primaire naar een geo-replica, maar niet de andere richting. Dit is een krachtig hulpprogramma dat vaak op verschillende manieren wordt gebruikt:

  • Lokale latentie bieden door caching dichter bij gebruikers te distribueren. Met behulp van een netwerk van actieve geo-gerepliceerde Redis-exemplaren kunt u caches geografisch dichter bij gebruikers in elke regio plaatsen, waardoor de latentie wordt verminderd en de app-prestaties worden verbeterd.
  • Globale toepassingen synchroniseren. Omdat geo-gerepliceerde caches worden weergegeven als één Redis-exemplaar, kunt u gegevens globaal distribueren zonder dat u gegevens hoeft te segmenteren per regio. U kunt bijvoorbeeld één redis-gesorteerde set gebruiken om een gaming leaderboard te bieden voor alle gebruikers over de hele wereld, in plaats van een afzonderlijk leaderboard te bieden voor elke geografische regio.
  • Downtime en risico's van regionale storingen verminderen. Omdat elke Redis-instantie in de geo-replicatiegroep voortdurend wordt bijgewerkt met de meest recente gegevens van de andere exemplaren in de groep, blijven gegevens goed behouden in het geval van een regionale storing. Toepassingen kunnen tijdelijk overschakelen naar het gebruik van een van de andere exemplaren in de groep. Wanneer de regio weer online komt, wordt het Redis-exemplaar automatisch opnieuw geladen met gegevens uit de andere geo-gerepliceerde caches.

Zie Active-Active Geo-Distribution (CRDTS) voor een gedetailleerdere uitsplitsing van de werking van actieve geo-replicatie

Bereik van beschikbaarheid

Laag Geoptimaliseerd voor geheugen, evenwichtig, geoptimaliseerd voor rekenkracht Geoptimaliseerd voor Flash
Beschikbaar Ja (behalve B0 en B1) Ja

Belangrijk

De SKU's Balanced B0 en B1 bieden geen ondersteuning voor actieve geo-replicatie.

Vereisten voor actieve geo-replicatie

Er zijn enkele beperkingen bij het gebruik van actieve geo-replicatie:

  • Actieve geo-replicatie wordt alleen ondersteund wanneer Azure Managed Redis zich in een configuratie met hoge beschikbaarheid bevindt (dat wil bijvoorbeeld replicatie gebruiken).
  • Alleen de RediSearch - en RedisJSON-modules worden ondersteund
  • In de categorie Geoptimaliseerd voor Flash kan alleen het verwijderingsbeleid zonder verwijdering worden gebruikt. Alle verwijderingsbeleidsregels worden ondersteund in de andere lagen.
  • Gegevenspersistentie wordt niet ondersteund omdat actieve geo-replicatie een superieure ervaring biedt.
  • Alle caches binnen een geo-replicatiegroep moeten dezelfde configuratie hebben. Alle caches moeten bijvoorbeeld dezelfde SKU, capaciteit, verwijderingsbeleid, clusterbeleid, modules en TLS-instelling hebben.
  • Als één exemplaar in een geo-repliatiegroep wordt geschaald, moeten de andere exemplaren in die groep worden geschaald naar dezelfde grootte voordat er extra schaalaanpassing kan plaatsvinden. Zie Instanties schalen in een geo-replicatiegroep voor meer informatie.
  • U kunt de FLUSHALL opdrachten en FLUSHDB Redis-opdrachten niet gebruiken wanneer u actieve geo-replicatie gebruikt. Het verbieden van de opdrachten voorkomt onbedoelde verwijdering van gegevens. Gebruik in plaats daarvan de flush-bewerking .

Een actieve geo-replicatiegroep maken of eraan deelnemen

  1. Wanneer u een nieuwe Azure Managed Redis-resource maakt, selecteert u het tabblad Geavanceerd . Vul het eerste deel van het formulier in, inclusief clusterbeleid. Zie Clustering in Azure Managed Redis voor meer informatie over het kiezen van Clustering-beleid.

  2. Selecteer Configureren om actieve geo-replicatie in te stellen.

    Schermopname van het tabblad Geavanceerd van het maken van een nieuwe Redis-cachepagina.

  3. Maak een nieuwe replicatiegroep voor een eerste cache-exemplaar. Of selecteer een bestaande in de lijst.

    Schermopname van replicatiegroepen.

  4. Selecteer Configureren om te voltooien.

  5. Wacht tot de eerste cache is gemaakt. Als u klaar bent, ziet u geconfigureerde set voor actieve geo-replicatie. Herhaal de bovenstaande stappen voor elk cache-exemplaar in de geo-replicatiegroep.

    Schermopname van actieve geo-replicatie is geconfigureerd.

Een bestaand exemplaar toevoegen aan een actieve geo-replicatiegroep

Als u een bestaand cache-exemplaar wilt toevoegen aan een actieve geo-replicatiegroep, kunt u de REST API gebruiken om een geforceerde koppelingsactie uit te voeren.

Alle gegevens in het cache-exemplaar dat wordt gekoppeld, worden verwijderd. Het exemplaar is gedurende enkele minuten ook tijdelijk niet beschikbaar tijdens het toevoegen van de geo-replicatiegroep. Portal- en CLI-ondersteuning zijn nog niet beschikbaar voor deze functie.

Verwijderen uit een actieve geo-replicatiegroep

Als u een cache-exemplaar uit een actieve geo-replicatiegroep wilt verwijderen, verwijdert u het exemplaar. De resterende exemplaren worden vervolgens automatisch opnieuw geconfigureerd.

Actieve geo-replicatie is een krachtige functie om de beschikbaarheid aanzienlijk te verbeteren bij het gebruik van Azure Managed Redis. U moet echter stappen ondernemen om uw caches voor te bereiden als er een regionale storing is.

Bekijk bijvoorbeeld de volgende tips:

  • Bepaal vooraf naar welke andere cache in de geo-replicatiegroep moet worden overgeschakeld als een regio uitvalt.
  • Zorg ervoor dat firewalls zo zijn ingesteld dat toepassingen en clients toegang hebben tot de geïdentificeerde back-upcache.
  • Elke cache in de geo-replicatiegroep heeft een eigen toegangssleutel. Bepaal hoe de toepassing overschakelt naar verschillende toegangssleutels bij het richten van een back-upcache.
  • Als een cache in de geo-replicatiegroep uitvalt, begint er een opbouw van metagegevens in alle caches in de geo-replicatiegroep op te treden. De metagegevens kunnen pas worden verwijderd als schrijfbewerkingen opnieuw naar alle caches kunnen worden gesynchroniseerd. U kunt voorkomen dat de metagegevens worden opgebouwd door het ontkoppelen van de cache die niet beschikbaar is, af te dwingen. Overweeg om het beschikbare geheugen in de cache te bewaken en ontkoppelen als er geheugenbelasting is, met name voor schrijfintensieve werkbelastingen.

Het is ook mogelijk om een circuitonderbrekerpatroon te gebruiken. Gebruik het patroon om verkeer automatisch om te leiden van een cache die te maken heeft met een storing in een regio en naar een back-upcache in dezelfde geo-replicatiegroep. Gebruik Azure-services zoals Azure Traffic Manager of Azure Load Balancer om de omleiding in te schakelen.

Als een van de caches in uw replicatiegroep niet beschikbaar is vanwege een storing in de regio, kunt u de niet-beschikbare cache geforceerd verwijderen uit de replicatiegroep.

Verwijder de niet-beschikbare cache omdat de resterende caches in de replicatiegroep beginnen met het opslaan van de metagegevens die niet zijn gedeeld met de niet-beschikbare cache. Als dit gebeurt, kunnen de beschikbare caches in uw replicatiegroep onvoldoende geheugen bevatten.

  1. Ga naar Azure Portal en selecteer een van de caches in de replicatiegroep die nog steeds beschikbaar is.

  2. Selecteer deze optie om geo-replicatie in het menu Resource aan de linkerkant te activeren om de instellingen in het werkvenster weer te geven.

    Schermopname van actieve geo-replicatiegroep.

  3. Selecteer de cache die u nodig hebt om de koppeling af te dwingen door het selectievakje in te schakelen.

  4. Selecteer Forceren ontkoppelen en vervolgens OK om te bevestigen.

    Schermopname van het ontkoppelen van actieve geo-replicatie.

  5. Zodra de beschikbaarheid van de betrokken regio is hersteld, moet u de betreffende cache verwijderen en opnieuw maken om deze weer toe te voegen aan uw replicatiegroep.

Actieve geo-replicatie instellen met behulp van de Azure CLI of PowerShell

Azure-CLI

Gebruik de Azure CLI om een nieuwe cache en geo-replicatiegroep te maken of om een nieuwe cache toe te voegen aan een bestaande geo-replicatiegroep. Zie az redisenterprise create voor meer informatie.

Een nieuw azure Managed Redis-exemplaar maken in een nieuwe geo-replicatiegroep met behulp van Azure CLI

In dit voorbeeld wordt een nieuw azure Managed Redis Balanced B10-exemplaar met de naam Cache1 gemaakt in de regio VS - oost. Vervolgens wordt de cache toegevoegd aan een nieuwe actieve geo-replicatiegroep met de naam replicationGroup:

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"

Als u actieve geo-replicatie correct wilt configureren, moet de id van het cache-exemplaar dat wordt gemaakt, worden toegevoegd met de --linked-databases parameter. De id heeft de volgende indeling:

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

Een nieuw Azure Managed Redis-exemplaar maken in een bestaande geo-replicatiegroep met behulp van Azure CLI

In dit voorbeeld wordt een nieuw cache-exemplaar met evenwichtige B10-cache gemaakt met de naam Cache2 in de regio VS - west. Vervolgens voegt het script de cache toe aan de replicationGroup actieve geo-replicatiegroep die in een vorige procedure is gemaakt. Op deze manier wordt deze gekoppeld in een actief-actief-configuratie met Cache1.

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"

Net als voorheen moet u zowel Cache1 als Cache2 vermelden met behulp van de --linked-databases parameter.

Azure PowerShell

Gebruik Azure PowerShell om een nieuwe cache en geo-replicatiegroep te maken of om een nieuwe cache toe te voegen aan een bestaande geo-replicatiegroep. Zie New-AzRedisEnterpriseCache voor meer informatie.

Een nieuw Azure Managed Redis-exemplaar maken in een nieuwe geo-replicatiegroep met behulp van PowerShell

In dit voorbeeld wordt een nieuw azure Managed Redis Balanced B10-cacheexemplaren met de naam Cache1 gemaakt in de regio VS - oost. Vervolgens wordt de cache toegevoegd aan een nieuwe actieve geo-replicatiegroep met de naam replicationGroup:

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"}'

Als u actieve geo-replicatie correct wilt configureren, moet de id van het cache-exemplaar dat wordt gemaakt, worden toegevoegd met de -LinkedDatabase parameter. De id heeft de volgende indeling:

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

Een nieuw Azure Managed Redis-exemplaar maken in een bestaande geo-replicatiegroep met behulp van PowerShell

In dit voorbeeld wordt een nieuw cache-exemplaar met evenwichtige B10-cache gemaakt met de naam Cache2 in de regio VS - west. Vervolgens voegt het script de cache toe aan de actieve geo-replicatiegroep,'replicationGroup', die in de vorige procedure is gemaakt. Het resultaat is dat de twee caches, Cache1 en Cache2, zijn gekoppeld in een actief-actief-configuratie.

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"}'

Net als voorheen moet u zowel Cache1 als Cache2 vermelden met behulp van de -LinkedDatabase parameter.

Instanties schalen in een geo-replicatiegroep

Het is mogelijk om exemplaren te schalen die zijn geconfigureerd voor het gebruik van actieve geo-replicatie. Een geo-replicatiegroep met een combinatie van verschillende cachegrootten kan echter problemen veroorzaken. Om te voorkomen dat deze problemen optreden, moeten alle caches in een geo-replicatiegroep dezelfde grootte en prestatielaag hebben.

Omdat voor schalen de grootte of laag moet worden gewijzigd en het moeilijk is om alle exemplaren in de geo-replicatiegroep tegelijkertijd te schalen, heeft Azure Managed Redis een vergrendelingsmechanisme. Als u één exemplaar in een geo-replicatiegroep schaalt, wordt de onderliggende VM geschaald, maar wordt het beschikbare geheugen beperkt tot de oorspronkelijke grootte totdat de andere exemplaren ook omhoog worden geschaald. En eventuele andere schaalbewerkingen voor de resterende exemplaren worden vergrendeld totdat ze overeenkomen met dezelfde configuratie als de eerste cache die moet worden geschaald.

Voorbeeld van schalen

U hebt bijvoorbeeld drie exemplaren in uw geo-replicatiegroep, alle M10-exemplaren die zijn geoptimaliseerd voor geheugen:

Exemplaarnaam Redis00 Redis01 Redis02
Type Geoptimaliseerd voor geheugen M10 Geoptimaliseerd voor geheugen M10 Geoptimaliseerd voor geheugen M10

Stel dat u elke instantie in deze geo-replicatiegroep omhoog wilt schalen naar een X20-exemplaar dat is geoptimaliseerd voor rekenkracht. U schaalt eerst een van de caches naar een X20:

Exemplaarnaam Redis00 Redis01 Redis02
Type Geoptimaliseerde X20-rekenkracht Geoptimaliseerd voor geheugen M10 Geoptimaliseerd voor geheugen M10

Op dit moment kunnen de Redis01 instanties en Redis02 instanties alleen een X20-exemplaar omhoog schalen dat is geoptimaliseerd voor rekenkracht. Alle andere schaalbewerkingen worden geblokkeerd.

Notitie

Het Redis00 exemplaar kan op dit moment niet verder worden geschaald. Maar het wordt geblokkeerd zodra Redis01 deze wordt geschaald of Redis02 wordt geschaald als een geoptimaliseerde X20-berekening.

Zodra elk exemplaar is geschaald naar dezelfde laag en grootte, worden alle schaalvergrendelingen verwijderd:

Exemplaarnaam Redis00 Redis01 Redis02
Type Geoptimaliseerde X20-rekenkracht Geoptimaliseerde X20-rekenkracht Geoptimaliseerde X20-rekenkracht

Bewerking leegmaken

Vanwege het potentieel voor onbedoeld gegevensverlies, kunt u de FLUSHALL opdrachten en FLUSHDB Redis-opdrachten niet gebruiken met een cache-exemplaar dat zich in een geo-replicatiegroep bevindt. Gebruik in plaats daarvan de knop Cache(s) leegmaken boven aan het werkvenster Actieve geo-replicatie .

Schermopname van actieve geo-replicatie geselecteerd in het menu Resource en de functie Cache leegmaken heeft er een rood kader omheen.

Caches leegmaken met behulp van Azure CLI of PowerShell

De Azure CLI en PowerShell kunnen ook worden gebruikt om een leeggemaakte bewerking te activeren. Zie az redisenterprise database flush voor meer informatie over het gebruik van Azure CLI. Zie Invoke-AzRedisEnterpriseCacheDatabaseFlush voor meer informatie over het gebruik van PowerShell.

Belangrijk

Wees voorzichtig bij het gebruik van de functie Caches leegmaken . Als u de knop selecteert, worden alle gegevens uit de huidige cache en uit ALLE gekoppelde caches in de geo-replicatiegroep verwijderd.

Toegang tot de functie beheren met behulp van op rollen gebaseerd toegangsbeheer van Azure. Alleen geautoriseerde gebruikers moeten toegang krijgen om alle caches leeg te maken.

Volgende stappen