Geo-replikering i Azure Web PubSub
Verksamhetskritiska appar måste ofta ha ett robust redundanssystem och betjäna användare närmare var de befinner sig. Innan geo-replikeringsfunktionen släpptes behövde utvecklare distribuera flera Web PubSub-resurser och skriva anpassad kod för att samordna kommunikationen mellan resurser. Nu, med snabb konfiguration via Azure Portal, kan du enkelt aktivera den här funktionen.
Fördelar med att använda geo-replikering
- Mer motståndskraftigt mot regionalt avbrott: Om ett regionalt avbrott inträffar dirigeras klienter automatiskt till en felfri replik.
- Kommunikation mellan regioner: Utvecklare använder en geo-replikeringsaktiverad resurs som vanligt, även om det finns fler än en resurs bakom kulisserna. Kommunikationen mellan repliker hanteras av tjänsten.
- Förbättrad nätverkshastighet: Geografiskt spridda klienter ansluter till närmaste replik. Dessa repliker kommunicerar via azures globala nätverksstomme, vilket säkerställer ett snabbt och stabilt nätverk.
- Enkel hantering. Alla repliker delar konfigurationen av den primära Web PubSub-resursen.
Förutsättningar
- En Web PubSub-resurs på premiumnivå.
Exempel på användningsfall
Contoso, ett företag inom sociala medier
Contoso är ett socialt medieföretag med sin kundbas spridd över USA och Kanada. Contoso tillhandahåller en mobil- och webbapp till sina användare så att de kan ansluta till varandra. Contoso-programmet distribueras i USA, centrala. Som en del av Contosos arkitektur används Web PubSub för att upprätta beständiga WebSocket-anslutningar mellan klientappar och programservern. Contoso gillar att de kan avlasta hantering av WebSocket-anslutningar till Web PubSub, men gillar inte att läsa rapporter om användare i Kanada som har högre svarstid. Dessutom vill Contosos utvecklingsteam försäkra appen mot regionala avbrott så att användarna kan komma åt appen utan avbrott.
Contoso kan konfigurera en annan Web PubSub-resurs i Canada Central som är geografiskt närmare sina användare i Kanada. Att hantera flera Web PubSub-resurser medför dock vissa utmaningar:
- En kommunikationsmekanism mellan regioner måste implementeras så att användare i Kanada och USA kan interagera med varandra.
- Utvecklingsteamet skulle behöva hantera två separata Web PubSub-resurser, var och en med distinkt domän och anslutningssträng.
- Om ett regionalt avbrott inträffar måste trafiken dirigeras till en tillgänglig resurs.
Alla ovanstående tar tekniska resurser från att fokusera på produktinnovation.
Utnyttja geo-replikeringsfunktionen
Med geo-replikeringsfunktionen kan Contoso nu upprätta en replik i Canada Central, vilket effektivt övervinner ovanstående utmaningar. Utvecklarteamet är glada över att få reda på att de inte behöver göra några kodändringar. Det är lika enkelt som att klicka på några knappar på Azure Portal. Utvecklarteamet delar också gärna med sig av till intressenterna att när Contoso planerar att komma in på den europeiska marknaden behöver de helt enkelt lägga till ytterligare en replik i Europa.
Aktivera geo-replikering i en Web PubSub-resurs
Om du vill skapa en replik i en Azure-region går du till din Web PubSub-resurs och letar upp bladet Repliker på Azure Portal och klickar på Lägg till för att skapa en replik.
När du har skapat den kan du visa/redigera repliken på portalen genom att klicka på repliknamnet.
Kommentar
- Antalet repliker är för närvarande begränsat till högst 8 per primär resurs.
Pris- och resursenhet
Varje replik har sin egen unit
och autoscale settings
.
Replik är en funktion i Premium-nivån för Azure Web PubSub Service. Varje replik faktureras separat enligt sin egen enhet och utgående trafik. Den kostnadsfria meddelandekvoten beräknas också separat.
I föregående exempel lade Contoso till en replik i Canada Central. Contoso skulle betala för repliken i Canada Central enligt dess enhet och meddelande i Premium Price.
Det kommer att finnas utgående avgifter för utgående trafik mellan regioner. Om ett meddelande överförs mellan repliker och skickas till en klient eller server efter överföringen debiteras det som ett utgående meddelande.
Ta bort en replik
När du har skapat en replik för en Web PubSub-resurs kan du ta bort den när som helst om den inte längre behövs.
Så här tar du bort en replik i Azure Portal:
- Gå till din Web PubSub-resurs och välj bladet Repliker . Klicka på den replik som du vill ta bort.
- Klicka på knappen Ta bort på bladet repliköversikt.
Så här tar du bort en replik med hjälp av Azure CLI:
az webpubsub replica delete --replica-name MyReplica --name MyWebPubSub -g MyResourceGroup
Förstå hur geo-replikeringsfunktionen fungerar
- Klienten löser det fullständigt kvalificerade domännamnet (FQDN)
contoso.webpubsub.azure.com
för Web PubSub-tjänsten. Det här fullständiga domännamnet pekar på en Traffic Manager som returnerar det kanoniska namnet (CNAME) för den närmaste regionala Web PubSub-instansen. - Med detta CNAME upprättar klienten en websocket-anslutning till den regionala instansen (repliken).
- De två replikerna synkroniserar data med varandra. Meddelanden som skickas till en replik överförs till andra repliker om det behövs.
- Om en replik misslyckas med hälsokontrollen som utförs av Traffic Manager (TM) utesluter TM slutpunkten för den misslyckade instansen från dess resultat för domänmatchning. Mer information finns i nedan Återhämtning och haveriberedskap
Kommentar
- I dataplanet fungerar en primär Azure Web PubSub-resurs identiskt med dess repliker
Återhämtning och haveriberedskap
Azure Web PubSub Service använder en trafikhanterare för hälsokontroller och DNS-matchning mot sina repliker. När alla repliker fungerar som de ska dirigeras klienterna under normala omständigheter till närmaste replik. Till exempel:
- Klienter nära
eastus
dirigeras till repliken som finns ieastus
. - På samma sätt dirigeras klienter nära
westus
till repliken iwestus
.
I händelse av ett regionalt avbrott i eastus (se nedan) identifierar trafikhanteraren hälsokontrollfelet för den regionen. Sedan undantas den här felaktiga replikens DNS från trafikhanterarens DNS-matchningsresultat. Efter en TTL-varaktighet (Time-to-Live) för DNS, som är inställd på 90 sekunder, omdirigeras klienter i eastus
för att ansluta till repliken i westus
.
När problemet i eastus
har lösts och regionen är online igen lyckas hälsokontrollen. Klienter i eastus
dirigeras sedan återigen till repliken i deras region. Den här övergången är smidig eftersom de anslutna klienterna inte påverkas förrän de befintliga anslutningarna har stängts.
Den här redundans- och återställningsprocessen är automatisk och kräver inga manuella åtgärder.
Inaktivera eller aktivera replikslutpunkten
När du konfigurerar en replik kan du aktivera eller inaktivera dess slutpunkt. Om den är inaktiverad innehåller den primära FQDN:ns DNS-matchning inte repliken, och därför dirigeras inte trafiken till den.
Du kan också aktivera inaktivera slutpunkten när den har skapats. På den primära resursens replikblad klickar du på ellipsknappen till höger om repliken och väljer Aktivera slutpunkt eller Inaktivera slutpunkt:
Innan du tar bort en replikering bör du överväga att inaktivera slutpunkten först. Med tiden kopplas befintliga anslutningar från. Eftersom inga nya anslutningar kommer blir replikeringen äntligen inaktiv. Detta säkerställer en sömlös borttagningsprocess.
Den här funktionen är också användbar för felsökning av regionala problem.
Kommentar
- På grund av DNS-cachen kan det ta flera minuter innan DNS-uppdateringen börjar gälla.
- Befintliga anslutningar påverkas inte förrän de kopplas från.
Påverkan på prestanda efter aktivering av geo-replikeringsfunktion
När repliker har aktiverats distribueras klienter naturligt baserat på deras geografiska platser. Web PubSub tar på sig ansvaret att synkronisera data mellan dessa repliker, men du är glad över att veta att de associerade kostnaderna för serverbelastning är minimala för de vanligaste användningsfallen.
Mer specifikt, om ditt program vanligtvis sänder till större grupper (storlek >10) eller en enda anslutning, är prestandapåverkan av synkronisering knappt märkbar. Om du har små meddelandegrupper (storlek < 10) kanske du märker lite mer omkostnader för synkronisering.
För att säkerställa effektiv redundanshantering rekommenderar vi att du anger varje repliks enhetsstorlek för att hantera all trafik. Du kan också aktivera automatisk skalning för att hantera detta.
Mer prestandautvärdering finns i Prestanda.
Icke-ärvda och ärvda konfigurationer
Repliker ärver de flesta konfigurationer från den primära resursen. Vissa inställningar måste dock konfigureras direkt på replikerna. Nedan visas listan över dessa konfigurationer:
- SKU: Varje replik har sitt eget SKU-namn och enhetsstorlek. Reglerna för automatisk skalning för repliker måste konfigureras separat baserat på deras enskilda mått.
- Delade privata slutpunkter: Även om delade privata slutpunkter replikeras automatiskt till repliker krävs separata godkännanden för privata mållänkresurser. Om du vill lägga till eller ta bort delade privata slutpunkter hanterar du dem på den primära resursen. Aktivera inte repliken förrän dess delade privata slutpunkt har godkänts.
- Loggmålinställningar. Om den inte har konfigurerats på replikerna överförs endast loggar från den primära resursen.
- Aviseringar.
Alla andra konfigurationer ärvs från den primära resursen. Till exempel åtkomstnycklar, identitet, programbrandvägg, anpassade domäner, privata slutpunkter och åtkomstkontroll.