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 enFLUSHDB
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
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.
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 te voltooien.
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.
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.
Forceren 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.
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.
Ga naar Azure Portal en selecteer een van de caches in de replicatiegroep die nog steeds beschikbaar is.
Selecteer deze optie om geo-replicatie in het menu Resource aan de linkerkant te activeren om de instellingen in het werkvenster weer te geven.
Selecteer de cache die u nodig hebt om de koppeling af te dwingen door het selectievakje in te schakelen.
Selecteer Forceren ontkoppelen en vervolgens OK om te bevestigen.
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 .
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.