Konfigurera aktiv geo-replikering för Azure Managed Redis-instanser (förhandsversion)
I den här artikeln får du lära dig hur du konfigurerar en aktiv geo-replikerad cache med hjälp av Azure Portal.
Aktiva geo-replikeringsgrupper upp till fem instanser av Azure Managed Redis (förhandsversion) i en enda cache som sträcker sig inom Azure-regioner. Alla instanser fungerar som lokala, primära cacheminnen. Ett program avgör vilken instans eller vilka instanser som ska användas för läs- och skrivbegäranden.
Kommentar
Dataöverföring mellan Azure-regioner debiteras med standardbandbredd.
Så här fungerar aktiv geo-replikering
Aktiv geo-replikering använder konfliktfria replikerade datatyper (CRDT) för att sömlöst distribuera data över Redis-instanser som kan distribueras över kontinenter. Dessa instanser är anslutna i en aktiv-aktiv konfiguration, där skrivningar till en instans automatiskt återspeglas i de andra instanserna i samma geo-replikeringsgrupp. Den här dubbelriktade datareplikeringen skiljer sig från enriktad aktiv-passiv replikering, där data replikeras från den primära till en geo-replik, men inte den andra riktningen. Det här är ett kraftfullt verktyg som ofta används på flera olika sätt:
Ge lokal svarstid genom att distribuera cachelagring närmare användarna. Genom att använda ett nätverk med aktiva geo-replikerade Redis-instanser kan du placera cacheminnen geografiskt närmare användarna i varje region, vilket minskar svarstiden och förbättrar appens prestanda.
Synkroniserar globala program. Eftersom geo-replikerade cacheminnen visas som en enda Redis-instans kan du distribuera data globalt utan att behöva segmentera data efter regioner. Du kan till exempel använda en enda Redis-sorterad uppsättning för att tillhandahålla en spellista för alla användare över hela världen, i stället för att tillhandahålla en separat rankningslista för varje geografisk region.
Minska stilleståndstid och risk till följd av regionala avbrott. Eftersom varje Redis-instans i gruppen geo-replikering ständigt uppdateras med de senaste data från de andra instanserna i gruppen bevaras data väl under ett regionalt avbrott. Program kan tillfälligt växla till att använda en av de andra instanserna i gruppen, och när regionen är online igen läses Redis-instansen automatiskt in med data från de andra geo-replikerade cacheminnena.
En mer detaljerad beskrivning av hur aktiv geo-replikering fungerar finns i Active-Active geo-distribution (CRDTS-baserad)
Tillgänglighet
Nivå | Minnesoptimerad, balanserad, beräkningsoptimerad | Flash-optimerad |
---|---|---|
Tillgängligt | Ja (utom B0 och B1) | Ja |
Viktigt!
SKU:erna Balanced B0 och B1 stöder inte aktiv geo-replikering.
Förutsättningar för aktiv geo-replikering
Det finns några begränsningar när du använder aktiv geo-replikering:
Aktiv geo-replikering stöds bara när Azure Managed Redis är i en konfiguration med hög tillgänglighet, det vill sa att den använder replikering.
Endast modulerna RediSearch och RedisJSON stöds
På nivån Flash-optimerad kan endast borttagningsprincipen Ingen borttagning användas. Alla borttagningsprinciper stöds på de andra nivåerna.
Databeständighet stöds inte eftersom aktiv geo-replikering erbjuder en överlägsen lösning.
Alla cacheminnen i en geo-replikeringsgrupp måste ha samma konfiguration. Alla cacheminnen måste exempelvis ha samma SKU, kapacitet, borttagningsprincip, klustringsprincip, moduler och TLS-inställningar.
Om en instans i en geo-replikeringsgrupp skalas måste de andra instanserna i gruppen skalas till samma storlek innan någon annan skalning kan ske. Se Skala instanser i en geo-replikeringsgrupp för mer information.
Du kan inte använda Redis-kommandona
FLUSHALL
ochFLUSHDB
när du använder aktiv geo-replikering. Genom att förbjuda kommandona förhindras oavsiktlig borttagning av data. Använd tömningsåtgärden i stället.
Skapa eller anslut en grupp för aktiv geo-replikering
När du skapar en ny Azure Managed Redis-resurs väljer du fliken Avancerat. Slutför den första delen av formuläret, inklusive klustringsprincipen. Mer information om hur du väljer Klustringsprincip, see Klustring i Azure Managed Redis.
Välj Konfigurera för att konfigurera Aktiv geo-replikering.
Skapa en ny replikeringsgrupp för en första cacheinstans. Eller välj en befintlig från listan.
Välj Konfigurera för att slutföra.
Vänta tills den första cachen har skapats framgångsrikt. När du är klar visas Konfigurerad uppsättning för Aktiv geo-replikering. Upprepa stegen ovan för varje cacheinstans i gruppen geo-replikering.
Lägga till en befintlig instans i en aktiv geo-replikeringsgrupp
Om du vill lägga till en befintlig cacheinstans i en aktiv geo-replikeringsgrupp kan du använda REST-API:et för att utföra en framtvinga-länk-åtgärd.
Alla data i cacheinstansen som länkas ignoreras. Instansen är också tillfälligt otillgänglig i flera minuter när du ansluter till geo-replikeringsgruppen. Portal- och CLI-stöd är ännu inte tillgängliga för den här funktionen.
Ta bort från en aktiv geo-replikeringsgrupp
För att ta bort en cacheinstans från en aktiv geo-replikationsgrupp tar du helt enkelt bort instansen. De återstående instanserna kommer därefter att automatiskt konfigurera om sig själva.
Framtvinga-avlänkning om det uppstår ett regionsavbrott
Aktiv geo-replikering är en kraftfull funktion som avsevärt förbättrar tillgängligheten vid användning av Azure Managed Redis. Du bör emellertid vidta åtgärder för att förbereda dina cacheminnen inför eventuella regionala avbrott.
Tänk till exempel på följande tips:
Identifiera i förväg vilken annan cache i geo-replikeringsgruppen som ska användas för att byta till om en region slutar fungera.
Säkerställ att brandväggsregler är konfigurerade så att alla program och klienter kan få åtkomst till den identifierade säkerhetskopieringscachen.
Varje cache i geo-replikeringsgruppen har sin egen unika åtkomstnyckel. Bestäm hur programmet ska hantera övergången till olika åtkomstnycklar när det riktas mot en säkerhetskopieringscache.
Om en cache i geo-replikeringsgruppen inte fungerar påbörjas en metadatauppbyggnad i samtliga cacheminnen inom geo-replikeringsgruppen. Metadata kan inte rensas förrän skrivningar återigen kan synkroniseras till alla cacheminnen. Du kan förhindra metadatauppbyggnaden genom att framtvinga avlänkning av den cache som inte fungerar. Överväg att övervaka det tillgängliga minnet i cachen och utföra en avlänkning om det uppstår minnesbelastning, särskilt vid skrivintensiva arbetsbelastningar.
Det går också att använda ett mönster för kretsbrytare. Använd ett mönster för att automatiskt omdirigera trafiken från en cache som påverkas av ett regionalt avbrott till en säkerhetskopieringscache inom samma geo-replikeringsgrupp. Använd Azure-tjänster som Azure Traffic Manager eller Azure Load Balancer för att aktivera omdirigeringen.
Om en cache i replikeringsgruppen inte är tillgänglig på grund av ett regionalt fel kan du med tvång ta bort den otillgängliga cachen från replikeringsgruppen.
Du bör ta bort den otillgängliga cachen eftersom de återstående cacheminnena i replikeringsgruppen börjar lagra metadata som inte delades till den otillgängliga cachen. När detta inträffar kan de tillgängliga cacheminnena i replikeringsgruppen riskera att få slut på minne.
Gå till Azure-portalen och välj ett av cacheminnena i replikeringsgruppen som fortfarande är tillgängligt.
Välj Aktiv geo-replikering i menyn Resurs till vänster för att se inställningarna i arbetsfönstret.
Markera den cache som du behöver framtvinga länkning för genom att klicka i kryssrutan.
Välj Framtvinga avlänkning och sedan OK för att bekräfta.
När tillgängligheten för den berörda regionen har återställts måste du ta bort den berörda cachen och sedan återskapa den för att lägga till den i replikeringsgruppen på nytt.
Konfigurera aktiv geo-replikering med hjälp av Azure CLI eller PowerShell
Azure CLI
Använd Azure CLI för att skapa en ny cache och geo-replikeringsgrupp eller för att lägga till en ny cache i en befintlig geo-replikeringsgrupp. Mer information finns i az redisenterprise create.
Skapa en ny Azure Managed Redis-instans i en ny geo-replikeringsgrupp med Azure CLI
I det här exemplet skapas en ny Azure Managed Redis Balanced B10-instans med namnet Cache1 i regionen USA, östra. Sedan läggs cachen till i en ny aktiv geo-replikeringsgrupp med namnet 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"
För att konfigurera aktiv geo-replikering korrekt måste ID:t för den skapade cacheinstansen inkluderas med parametern --linked-databases
. ID:t är i formatet:
/subscriptions/<your-subscription-ID>/resourceGroups/<your-resource-group-name>/providers/Microsoft.Cache/redisEnterprise/<your-cache-name>/databases/default
Skapa en ny Azure Managed Redis-instans i en befintlig geo-replikeringsgrupp med Azure CLI
I det här exemplet skapas en ny balancerad B10-cacheinstans med namnet Cache2 i regionen USA, västra. Sedan lägger skriptet till cachen i den replicationGroup
aktiva geo-replikeringsgrupp som skapades tidigare. På så sätt länkas den i en aktiv-aktiv konfiguration med 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"
Som tidigare måste du lista både Cache1 och Cache2 med parametern --linked-databases
.
Azure PowerShell
Använd PowerShell för att skapa en ny cache och geo-replikeringsgrupp eller för att lägga till en ny cache i en befintlig geo-replikeringsgrupp. Mer information finns i New-AzRedisEnterpriseCache.
Skapa en ny Azure Managed Redis-instans i en ny geo-replikeringsgrupp med PowerShell
I det här exemplet skapas en ny Azure Managed Redis Balanced B10-cacheinstans med namnet Cache1 i regionen USA, östra. Sedan läggs cachen till i en ny aktiv geo-replikeringsgrupp med namnet 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"}'
För att konfigurera aktiv geo-replikering korrekt måste ID:t för den skapade cacheinstansen inkluderas med parametern -LinkedDatabase
. ID:t är i formatet:
/subscriptions/<your-subscription-ID>/resourceGroups/<your-resource-group-name>/providers/Microsoft.Cache/redisEnterprise/<your-cache-name>/databases/default
Skapa en ny Azure Managed Redis-instans i en befintlig geo-replikeringsgrupp med PowerShell
I det här exemplet skapas en ny balancerad B10-cacheinstans med namnet Cache2 i regionen USA, västra. Sedan lägger skriptet till cachen i den aktiva geo-replikeringsgruppen, replicationGroup som skapades i föregående procedur. Resultatet är att de två cacheminnena Cache1 och Cache2 är länkade i en aktiv-aktiv konfiguration.
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"}'
Som tidigare måste du lista både Cache1 och Cache2 med parametern -LinkedDatabase
.
Skala instanser i en geo-replikeringsgrupp
Det går att skala instanser som är konfigurerade för aktiv geo-replikering. En geo-replikeringsgrupp med en blandning av olika cachestorlekar kan emellertid orsaka problem. För att undvika dessa problem måste alla cacheminnen i en geo-replikeringsgrupp ha samma storlek och prestandanivå.
Eftersom skalning kräver att du ändrar storlek eller nivå och det är svårt att samtidigt skala alla instanser i gruppen geo-replikering har Azure Managed Redis en låsmekanism. Om du skalar en instans i en geo-replikeringsgrupp skalas den underliggande virtuella datorn, men det tillgängliga minnet är begränsat till den ursprungliga storleken tills de andra instanserna också skalas upp. Och ytterligare skalningsåtgärder för de återstående instanserna är låsta tills de matchar samma konfiguration som den första cachen som har skalats.
Skalningsexempel
Du kan till exempel ha tre instanser i din geo-replikeringsgrupp, alla minnesoptimerade M10-instanser:
Instansnamn | Redis00 | Redis01 | Redis02 |
---|---|---|---|
Typ | Minnesoptimerad M10 | Minnesoptimerad M10 | Minnesoptimerad M10 |
Anta att du vill skala upp varje instans i denna geo-replikeringsgrupp till en beräkningsoptimerad X20-instans. Du skulle först skala upp en av cacheminnena till en X20:
Instansnamn | Redis00 | Redis01 | Redis02 |
---|---|---|---|
Typ | Beräkningsoptimerad X20 | Minnesoptimerad M10 | Minnesoptimerad M10 |
I det här läget kan instanserna Redis01
och Redis02
endast skala upp en beräkningsoptimerad X20-instans. Alla andra skalningsåtgärder blockeras.
Kommentar
Instansen Redis00
blockeras inte från att skalas ytterligare just nu. Men den blockeras en gång eller Redis01
Redis02
skalas till en beräkningsoptimerad X20.
När varje instans skalas till samma nivå och storlek tas alla skalningslås bort:
Instansnamn | Redis00 | Redis01 | Redis02 |
---|---|---|---|
Typ | Beräkningsoptimerad X20 | Beräkningsoptimerad X20 | Beräkningsoptimerad X20 |
Tömningsåtgärd
På grund av risken för oavsiktlig dataförlust kan du inte använda Redis-kommandona FLUSHALL
och FLUSHDB
med någon cacheinstans som tillhör en geo-replikationsgrupp. Använd instället knappen Tömma cache längst upp i arbetsfönstret Aktiv geo-replikering.
Geo-replikeringsmått
Måttet Geo Replication Healthy i Azure Managed Redis hjälper till att övervaka hälsotillståndet för geo-replikerade kluster. Du använder det här måttet för att övervaka synkroniseringsstatusen mellan geo-repliker.
Så här övervakar du måttet Geo Replication Healthy i Azure Portal:
Öppna Azure Portal och välj din Azure Managed Redis-instans.
På menyn Resurs väljer du Mått under avsnittet Övervakning .
Välj Lägg till mått och välj måttet Geo-replikering felfri .
Om det behövs använder du filter för specifika geo-repliker.
Du kan konfigurera en avisering för att meddela dig om måttet Geo-replikering Felfri genererar ett felaktigt värde (0) kontinuerligt i över 60 minuter.
Välj Ny aviseringsregel.
Definiera villkoret som ska utlösas om måttvärdet är 0 i minst 60 minuter, den rekommenderade tiden.
Lägg till åtgärdsgrupper för meddelanden, till exempel e-post, SMS och andra.
Spara aviseringen.
Mer information om hur du konfigurerar aviseringar för din Redis Enterprise-cache finns i aviseringsavsnittet i Övervaka Redis-cacheminnen.
Viktigt!
Det här måttet kan tillfälligt visas som felfritt på grund av rutinåtgärder som underhållshändelser eller skalning, som initierats antingen av Azure eller kunden. För att undvika falska larm rekommenderar vi att du konfigurerar ett observationsfönster på 60 minuter, där måttet fortsätter att vara felfritt som lämplig tid för att generera en avisering eftersom det kan tyda på ett problem som kräver åtgärder.
Vanliga problem på klientsidan som kan orsaka synkroniseringsproblem mellan geo-repliker
Användning av anpassade hashtaggar – Om du använder anpassade hashtaggar i Redis kan det leda till ojämn fördelning av data mellan shards, vilket kan orsaka prestandaproblem och synkroniseringsproblem i geo-repliker, så undvik därför att använda anpassade hashtaggar om inte databasen behöver utföra flera viktiga åtgärder.
Stor nyckelstorlek – Stora nycklar kan skapa synkroniseringsproblem mellan geo-repliker. För att upprätthålla smidig prestanda och tillförlitlig replikering rekommenderar vi att du håller nyckelstorlekarna under 500 MB när du använder geo-replikering. Om den enskilda nyckelstorleken kommer nära 2 GB står cacheminnet inför problem med geo-replikeringshälsa.
Rensa cacheminnen med Azure CLI eller PowerShell
Azure CLI och PowerShell kan också användas för att utlösa en tömningsåtgärd. Mer information om hur du använder Azure CLI finns i az redisenterprise databastömning. Mer information om hur du använder PowerShell finns i Anropa-AzRedisEnterpriseCacheDatabaseFlush.
Viktigt!
Var försiktig när du använder funktionen Tömma cacheminnen . Om du väljer knappen tas alla data bort från den aktuella cachen och från ALLA länkade cacheminnen i geo-replikationsgruppen.
Hantera åtkomst till funktionen med Rollbaserad åtkomstkontroll i Azure. Endast behöriga användare bör ges åtkomst för att rensa alla cacheminnen.