Geo-replikering i Azure SignalR
Företag som söker lokal närvaro eller som kräver ett robust redundanssystem väljer ofta att distribuera tjänster i flera Azure-regioner. Med integreringen av geo-replikering i Azure SignalR har det blivit betydligt enklare att hantera scenarier i flera regioner.
Fördelar med att använda geo-replikering
- Mer motståndskraftigt mot regionalt avbrott: Om ett regionalt avbrott inträffar kommer Azure SignalR DNS att matchas mot felfria repliker i andra regioner.
- Kommunikation mellan regioner. Olika repliker kan kommunicera med varandra som om de vore samma instans.
- 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.
- Delade konfigurationer. Alla repliker behåller den primära Azure SignalR Service-resursens konfiguration.
Förutsättningar
- En Azure SignalR Service på Premium-nivå.
Exempel på användningsfall
Contoso är ett socialt medieföretag med sin kundbas spridd över USA och Kanada. För att betjäna dessa kunder och låta dem kommunicera med varandra kör Contoso sina tjänster i USA, centrala. Azure SignalR Service används för att hantera användaranslutningar och underlätta kommunikationen mellan användare. Contosos slutanvändare är mestadels telefonanvändare. På grund av de långa geografiska avstånden kan slutanvändarna i Kanada uppleva hög svarstid och dålig nätverkskvalitet.
Före tillkomsten av geo-replikeringsfunktionen kunde Contoso konfigurera en annan Azure SignalR Service i Canada Central för att betjäna sina kanadensiska användare. Genom att konfigurera en geografiskt närmare Azure SignalR Service har slutanvändarna nu bättre nätverkskvalitet och kortare svarstid.
Men att hantera flera Azure SignalR Services medför vissa utmaningar:
- En kommunikationsmekanism mellan regioner skulle krävas för att aktivera konversation mellan användare i Kanada och USA.
- Utvecklingsteamet skulle behöva hantera två separata Azure SignalR Services, var och en med distinkt domän och anslutningssträng.
- Om ett regionalt avbrott inträffar måste trafiken växlas till en annan region.
Utnyttja geo-replikering
Med den nya geo-replikeringsfunktionen kan Contoso nu upprätta en replik i Canada Central, vilket effektivt övervinner ovan nämnda hinder.
Skapa en SignalR-replik
Om du vill skapa en replik går du till bladet SignalR-repliker på Azure Portal och klickar på Lägg till för att skapa en replik. Den aktiveras automatiskt när den skapas.
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 i Azure SignalR 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 Azure SignalR Service 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 Azure SignalR Service och välj bladet Repliker . Klicka på den replik som du vill ta bort.
- Klicka på knappen Ta bort på bladet repliköversikt.
Förstå hur SignalR-repliken fungerar
Diagrammet nedan visar en kort bild av SignalR Replicas funktioner:
- Klienten förhandlar med appservern och tar emot en omdirigering till Azure SignalR-tjänsten. Den löser sedan SignalR-tjänstens fullständigt kvalificerade domännamn (FQDN) –
contoso.service.signalr.net
. Det här fullständiga domännamnet pekar på en Traffic Manager som returnerar det kanoniska namnet (CNAME) för den närmaste regionala SignalR-instansen. - Med detta CNAME upprättar klienten en 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 domänmatchningsprocess. Mer information finns i nedan Återhämtning och haveriberedskap
Kommentar
- I dataplanet fungerar en primär Azure SignalR-resurs identiskt med replikerna
Återhämtning och haveriberedskap
Azure SignalR 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.
För serveranslutningar fungerar redundans och återställning på samma sätt som för klientanslutningar.
Kommentar
- Den här redundansmekanismen gäller för Azure SignalR-tjänsten. Regionala avbrott för appservern ligger utanför det här dokumentets omfång.
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 när repliker har lagts till
När repliker har aktiverats distribueras klienter naturligt baserat på deras geografiska platser. SignalR tar på sig ansvaret för 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 flesta vanliga användningsfall.
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 meddelar små grupper (storlek < 10) eller enskilda användare 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.