Actieve geo-replicatie configureren voor Azure Managed Redis (preview)-exemplaren
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 meerdere 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 standaard bandbreedtetarieven.
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 tijdens 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, met geoptimaliseerde rekenkracht | Flash geoptimaliseerd |
---|---|---|
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 gezegd: replicatie.
Alleen de modules RediSearch en RedisJSON worden ondersteund
In de laag Geoptimaliseerd voor Flash kan alleen het verwijderingsbeleid Geen 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-replicatiegroep wordt geschaald, moeten de andere exemplaren in die groep worden geschaald naar dezelfde grootte voordat andere schaalaanpassingen kunnen plaatsvinden. Zie Exemplaren schalen in een geo-replicatiegroep voor meer informatie.
U kunt de Redis-opdrachten
FLUSHALL
enFLUSHDB
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 er lid van worden
Wanneer u een nieuwe Azure Managed Redis-resource maakt, selecteert u het tabblad Geavanceerd. Vul het eerste deel van het formulier in, inclusief clusterbeleid. Voor meer informatie over het kiezen van Clustering-beleid raadpleegt u Clustering in Azure Managed Redis.
Selecteer Configureren om Actieve geo-replicatie in te stellen.
Maak een nieuwe replicatiegroep voor een eerste cache-exemplaar. Of selecteer een bestaande in de lijst.
Selecteer Configureren om het te voltooien.
Wacht tot de eerste cache is gemaakt. Als u klaar bent, wordt Geconfigureerd weergegeven voor Actieve geo-replicatie. Herhaal de bovenstaande stappen voor elk cache-exemplaar in de geo-replicatiegroep.
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.
Geforceerd ontkoppelen als er een regio-storing is
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.
Overweeg 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 wanneer een back-upcache wordt gebruikt.
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 de cache die niet beschikbaar is geforceerd te ontkoppelen. Overweeg om het beschikbare geheugen in de cache te bewaken en te ontkoppelen als er geheugenbelasting is, met name voor schrijfintensieve workloads.
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, 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 hebben.
Ga naar Azure Portal en selecteer een van de caches in de replicatiegroep die nog steeds beschikbaar is.
Selecteer Actieve geo-replicatie in het menu Resource aan de linkerkant om de instellingen in het werkvenster weer te geven.
Selecteer de cache die u geforceerd wilt ontkoppelen door het selectievakje in te schakelen.
Selecteer Geforceerd ontkoppelen en vervolgens OK om te bevestigen.
Zodra de beschikbaarheid van de getroffen 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 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 US - 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 parameter --linked-databases
. De id heeft deze 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 Balanced B10-cache-exemplaar gemaakt met de naam Cache2 in de regio US - 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 parameter --linked-databases
.
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-cache-exemplaar met de naam Cache1 gemaakt in de regio US - 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 parameter -LinkedDatabase
. De id heeft deze 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 Balanced B10-cache-exemplaar gemaakt met de naam Cache2 in de regio US - 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 parameter -LinkedDatabase
.
Instanties schalen in een geo-replicatiegroep
Het is mogelijk om instanties 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 lastig 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 het beschikbare geheugen wordt 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 is 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 | M10 geoptimaliseerd voor geheugen | M10 geoptimaliseerd voor geheugen | M10 geoptimaliseerd voor geheugen |
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 | X20 geoptimaliseerd voor rekenkracht | M10 geoptimaliseerd voor geheugen | M10 geoptimaliseerd voor geheugen |
Op dit moment kunnen de exemplaren Redis01
en Redis02
alleen schalen naar een X20-exemplaar 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 eenmaal Redis01
geblokkeerd of Redis02
wordt geschaald als een geoptimaliseerde X20-rekenkracht.
Zodra elk exemplaar is geschaald naar dezelfde laag en grootte, worden alle schaalvergrendelingen verwijderd:
Exemplaarnaam | Redis00 | Redis01 | Redis02 |
---|---|---|---|
Type | X20 geoptimaliseerd voor rekenkracht | X20 geoptimaliseerd voor rekenkracht | X20 geoptimaliseerd voor rekenkracht |
Afboekbewerking
Vanwege het potentieel voor onbedoeld gegevensverlies, kunt u de Redis-opdrachten FLUSHALL
en FLUSHDB
niet gebruiken met een cache-exemplaar dat zich in een geo-replicatiegroep bevindt. Gebruik in plaats daarvan de knop Cache(s) afboeken boven aan het werkvenster Actieve geo-replicatie .
Metrische gegevens over geo-replicatie
De metrische gegevens georeplicatie in orde in Azure Managed Redis helpen bij het bewaken van de status van geo-gerepliceerde clusters. U gebruikt deze metrische waarde om de synchronisatiestatus tussen geo-replica's te bewaken.
Ga als volgende te werk om de metrische gegevens georeplicatie in orde te bewaken in Azure Portal:
Open Azure Portal en selecteer uw Azure Managed Redis-exemplaar.
Selecteer in het menu Resource de optie Metrische gegevens onder de sectie Bewaking .
Selecteer Metrische gegevens toevoegen en selecteer de metrische waarde Geo-replicatie in orde.
Pas, indien nodig, filters toe voor specifieke geo-replica's.
U kunt een waarschuwing configureren om u op de hoogte te stellen als de metrische waarde Geo-replicatie in orde gedurende meer dan 60 minuten continu een beschadigde waarde (0) verzendt.
Selecteer Nieuwe waarschuwingsregel.
Definieer de voorwaarde die moet worden geactiveerd als de metrische waarde minimaal 60 minuten 0 is, de aanbevolen tijd.
Voeg actiegroepen toe voor meldingen, bijvoorbeeld e-mail, sms en anderen.
Sla de waarschuwing op.
Zie de sectie Waarschuwingen bewaken in Redis-cache voor meer informatie over het instellen van waarschuwingen voor uw Redis Enterprise-cache.
Belangrijk
Deze metrische waarde kan tijdelijk als beschadigd worden weergegeven vanwege routinebewerkingen zoals onderhoudsgebeurtenissen of schalen, geïnitieerd door Azure of de klant. Om valse waarschuwingen te voorkomen, raden we u aan om een observatievenster van 60 minuten in te stellen, waarbij de metrische waarde niet in orde blijft als de juiste tijd voor het genereren van een waarschuwing, omdat dit kan duiden op een probleem waarvoor interventie is vereist.
Veelvoorkomende problemen aan de clientzijde die synchronisatieproblemen tussen geo-replica's kunnen veroorzaken
Gebruik van aangepaste hashtags: het gebruik van aangepaste hashtags in Redis kan leiden tot ongelijke distributie van gegevens tussen shards, wat prestatieproblemen en synchronisatieproblemen in geo-replica's kan veroorzaken, dus vermijd het gebruik van aangepaste hashtags, tenzij de database meerdere sleutelbewerkingen moet uitvoeren.
Grote sleutelgrootte: grote sleutels kunnen synchronisatieproblemen tussen geo-replica's maken. Voor een soepele prestaties en betrouwbare replicatie raden we u aan sleutelgrootten onder de 500 MB te houden bij het gebruik van geo-replicatie. Als de grootte van afzonderlijke sleutels bijna 2 GB groot is, ondervindt de cache problemen met de status van geo-replicatie.
Caches afboeken met behulp van Azure CLI of PowerShell
De Azure CLI en PowerShell kunnen ook worden gebruikt om een afboekbewerking te activeren. Zie az redisenterprise database afboeken 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 afboeken. Als u de knop selecteert, worden alle gegevens uit de huidige cache en uit ALLE gekoppelde caches in de geo-replicatiegroep verwijderd.
Beheer toegang tot de functie met behulp van op rollen gebaseerd toegangsbeheer van Azure. Alleen geautoriseerde gebruikers moeten toegang krijgen om alle caches af te boeken.