Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
služba Azure Web PubSub Service je plně spravovaná služba zasílání zpráv v reálném čase, která umožňuje obousměrnou komunikaci mezi servery a klienty pomocí protokolu WebSocket. Jeden zdroj Web PubSub může škálovat až na jeden milion souběžných připojení WebSocket. Služba podporuje několik vzorů zasílání zpráv, včetně vysílání mezi servery, zasílání zpráv do pojmenovaných skupin, pub/sub a streamování tokenů AI.
Při používání Azure je spolehlivost sdílenou odpovědností. Microsoft nabízí celou řadu možností, které podporují odolnost a obnovení. Zodpovídáte za pochopení toho, jak tyto možnosti fungují ve všech službách, které používáte, a výběrem možností, které potřebujete ke splnění vašich obchodních cílů a cílů dostupnosti.
Tento článek popisuje, jak zajistit odolnost služby Azure Web PubSub vůči nejrůznějším potenciálním výpadkům a problémům, včetně přechodných chyb, selhání zón dostupnosti a selhání v celé oblasti. Popisuje také, jak služba zpracovává údržbu a zvýrazňuje klíčové informace o smlouvě o úrovni služeb (SLA) Azure Web PubSub Service.
Doporučení pro produkční nasazení pro spolehlivost
V případě produkčních úloh postupujte podle těchto doporučení:
- Použijte úroveň Premium. Úroveň Premium je odolná vůči selháním zón dostupnosti v podporovaných oblastech a umožňuje nakonfigurovat geografickou replikaci.
- Při sestavování klientských aplikací použijte sadu Azure Web PubSub Client SDK nebo postupujte podle pokynů pro zpracování přechodných chyb bezpečným opětovným připojením. Převzetí při selhání zón, převzetí při selhání oblastí a dočasné chyby, všechny zahodí aktivní připojení.
- Povolte geografickou replikaci, abyste ochránili před selháními v celé oblasti. Upravte velikost každé repliky tak, aby měla dostatek jednotek pro zpracování plného očekávaného zatížení provozu během události převzetí služeb při selhání.
Přehled architektury spolehlivosti
Tato část popisuje některé důležité aspekty fungování služby, které jsou z hlediska spolehlivosti nejrelevantní. Tato část představuje logickou architekturu, která obsahuje některé prostředky a funkce, které nasazujete a používáte. Popisuje také fyzickou architekturu, která poskytuje podrobnosti o tom, jak služba funguje v zákulisí.
Logická architektura
Prostředek, který vytvoříte, je prostředek Web PubSub. Nakonfigurujete prostředek s počtem jednotek, který představuje kapacitu prostředku, včetně maximálního počtu souběžných připojení. Další informace najdete v průvodci Performance pro službu Azure Web PubSub.
Prostředek Web PubSub má globálně jedinečný koncový bod podobný contoso.webpubsub.azure.com. Klienti navazují připojení WebSocket k tomuto koncovému bodu. Aplikační servery se připojují ke stejnému koncovému bodu, aby od klientů odesílaly zprávy a přijímaly události.
Další informace najdete v tématu interní služby Azure Web PubSub.
Fyzická architektura
Azure Web PubSub Služba spravuje stav připojení WebSocket a směrování zpráv napříč sadou výpočetních prostředků. Microsoft spravuje základní infrastrukturu. Nevidíte ani nekomuagujete přímo s jednotlivými virtuálními počítači, které služba používá, ani s jinými komponentami infrastruktury.
Odolnost proti přechodným chybám
Přechodné chyby jsou krátká, přerušovaná selhání ve složkách. V distribuovaném prostředí, jako je cloud, se vyskytují často a jsou normální součástí provozu. Přechodné chyby se opravují po krátké době. Je důležité, aby vaše aplikace mohly zpracovávat přechodné chyby, obvykle opakováním ovlivněných požadavků.
Všechny aplikace hostované v cloudu by měly postupovat podle Azure pokynů pro zpracování přechodných chyb, když komunikují s libovolnými rozhraními API, databázemi a dalšími komponentami hostovanými v cloudu. Další informace najdete v tématu Doporučení pro zpracování přechodných chyb.
WebSocket je protokol dlouhodobého připojení. Přechodné síťové události, restartování back-endové infrastruktury a operace údržby služeb můžou ukončit aktivní připojení. Základní opětovné připojení obnoví připojení, ale bez další logiky klient přijde o zprávy, které byly během výpadku odeslány nebo zařazeny do fronty.
Služba Azure Web PubSub řeší tento problém prostřednictvím spolehlivých dílčích protokolů, které jsou postaveny na nezpracovaném připojení WebSocket. Dílčí subprotokoly sledují sekvenci zpráv a stav připojení, takže když dojde k výpadku připojení, klient znovu vyjedná se službou a pokračuje tam, kde přestal.
Po ukončení připojení a opětovném připojení obvykle nedojde ke ztrátě zpráv. V některých situacích ale může dojít ke ztrátě zpráv. Pokud se například klient po dobu delší než jednu minutu odpojí a pak se znovu připojí se stejným ID připojení, zobrazí operace opětovného připojení stav selhání, který značí, že může dojít ke ztrátě zpráv.
Pokud chcete využít výhod spolehlivých subprotokolů, postupujte podle těchto doporučení:
Pokud je to možné, použijte Azure Web PubSub klientskou sadu SDK. SDK implementuje spolehlivý podprotokol automaticky. Nevyžaduje se žádná další konfigurace. Další informace najdete tady:
Pokud nemůžete použít sadu SDK, implementujte jeden ze spolehlivých dílčích protokolů přímo v kódu klienta WebSocket. Úplné pokyny k specifikaci a implementaci najdete v tématu Vytvoření spolehlivých klientů WebSocket.
Odolnost proti chybám zóny dostupnosti
Zóny dostupnosti jsou fyzicky oddělené skupiny datacenter v rámci oblasti Azure. Když jedna zóna selže, mohou služby přejít na jednu ze zbývajících zón.
Azure Web PubSub Služba podporuje zónově redundantní nasazení při použití úrovně Premium. Při vytváření nebo upgradu prostředku Web PubSub úrovně Premium v oblasti, která podporuje zóny dostupnosti, se redundance zón automaticky povolí. Služba distribuuje svou infrastrukturu napříč několika zónami dostupnosti v dané oblasti. Pokud jedna zóna selže, služba směruje provoz do infrastruktury v zóně, která je v pořádku.
Požadavky
Podpora oblastí: Redundance zón je podporována ve většině oblastí, kde platí obě tyto podmínky:
- služba Azure Web PubSub je k dispozici. Seznam oblastí, ve kterých je služba dostupná, najdete v tématu Dostupnost produktů podle oblastí.
- Oblast podporuje zóny dostupnosti. Seznam regionů se zónami dostupnosti naleznete v seznamu Azure regionů.
Japonsko – západ ale v současné době nepodporuje redundanci zón pro Azure Web PubSub.
Úroveň: Redundance zóny je dostupná na úrovni Premium.
Cost
Zónová redundance nepřidává žádné náklady, a platíte standardní sazbu úrovně Premium. Další informace najdete v tématu Azure Web PubSub ceny služeb.
Konfigurujte podporu zón dostupnosti
Redundance zón nevyžaduje žádnou konfiguraci nad rámec výběru úrovně Premium. V obou těchto případech je automaticky povolená:
Vytvořte nový prostředek Web PubSub s podporou zónové redundance. Při vytváření prostředku vyberte skladovou položku úrovně Premium. Další informace najdete v tématu Vytvoření prostředku Azure Web PubSub.
Upgradujte existující prostředek na úroveň Premium. Zónová redundance se automaticky povolí při upgradu existujícího prostředku na SKU úrovně Premium. Upgrade z úrovně Standard na Premium nezpůsobuje výpadek služby. Další informace najdete v tématu Scale instance služby Azure Web PubSub.
Chování, když jsou všechny zóny v pořádku
Tato část popisuje, co očekávat, když nakonfigurujete prostředek Azure Web PubSub pro redundanci zón a všechny zóny dostupnosti jsou funkční.
Operace mezi zónami: Azure Web PubSub Služba automaticky spravuje způsob distribuce připojení a operací napříč zónami dostupnosti. Infrastruktura napříč více zónami zpracovává provoz v modelu aktivní-aktivní. Abyste mohli toto chování využít, nemusíte nic konfigurovat. Služba směruje zprávy mezi instancemi napříč zónami automaticky, takže zpráva odeslaná klientem v jedné zóně se doručí klientům připojeným v jakékoli jiné zóně.
Replikace dat mezi zónami: Azure Web PubSub Služba neuchovává zákaznická data. Služba udržuje metadata sezení, jako je stav připojení a informace o pořadí zpráv pro aktivní připojení. Tato metadata se synchronně replikují napříč zónami dostupnosti.
Chování při selhání zóny
Tato část popisuje, co očekávat, když nakonfigurujete prostředek Azure Web PubSub pro redundanci zón a dojde k výpadku v některé z zón dostupnosti.
- Detekce a reakce: Platforma služby Azure Web PubSub zodpovídá za detekci selhání v zóně dostupnosti. Nemusíte podnikat žádné kroky k zahájení převzetí služeb při selhání zóny.
- Oznámení: Microsoft vás automaticky neoznámí, když je zóna mimo provoz. Pomocí Azure Resource Health ale můžete monitorovat stav jednotlivých prostředků a můžete nastavit výstrahy Resource Health, které vás upozorní na problémy. Pomocí služby Azure Service Health můžete také porozumět celkovému stavu služby, včetně jakýchkoli selhání zón, a můžete nastavit upozornění služby Service Health , která vás upozorní na problémy.
Aktivní požadavky: Během selhání zóny dojde k vyřazení aktivních připojení Protokolu WebSocket k infrastruktuře v ovlivněné zóně. Pokud klienti zpracovávají přechodné chyby odpovídajícím způsobem, například opětovným připojením po krátké době, obvykle se vyhne významnému dopadu.
Výpadek dat: Azure Web PubSub Služba neuchovává zprávy, takže selhání zóny se neočekává, že dojde ke ztrátě dat v rámci služby Azure Web PubSub. Během události výpadku zóny se však zahodí všechna aktivní připojení, takže můžou být ztracena všechna aktivně přenášená data.
Používají-li vydavatelé klientskou sadu Azure Web PubSub SDK nebo implementují spolehlivé dílčí podprotokoly, jejich zprávy jsou službou potvrzeny po přijetí. Když se potvrdí zpráva, replikuje se napříč všemi zónami dostupnosti, takže selhání zóny vydavatele nezpůsobí ztrátu zprávy. Pokud ale odběratel zprávu ještě před vyřazením neobdrží, nemusí zprávu obdržet.
Očekávaný výpadek: Opětovné připojení vyřazených aktivních připojení obvykle trvá několik sekund. Klienti, kteří implementují logiku opětovného připojení, mají minimální přerušení.
Redistribution: Azure Web PubSub Služba detekuje ztrátu zóny a automaticky redistribuuje provoz napříč zónami, které jsou v pořádku. Nemusíte nic dělat.
Obnovení zóny
Když se zóna dostupnosti obnoví, služba Azure Web PubSub ji automaticky znovu integruje do aktivní topologie služby. Pro obnovení zóny nemusíte provádět žádnou akci.
Po obnovení zóny se můžou nová připojení směrovat na infrastrukturu v obnovené zóně. Všechna existující připojení se nepřesouvají ani znovu nevyrovnají do obnovené zóny, ale postupně se znovu vyrovnávají, protože stávající připojení v průběhu času klesají a znovu se připojují. Nevyváženost připojení napříč zónami nemá žádný vliv na vaši úlohu.
Testování poruch zón
Služba Azure Web PubSub automaticky spravuje směrování provozu, převzetí služeb při selhání a obnovení zóny pro zónově redundantní zdroje úrovně Premium. Nemusíte nic inicializovat. Vzhledem k tomu, že redundance zón je plně spravovaná, nemusíte ověřovat procesy selhání zóny dostupnosti.
Odolnost proti selháním v celé oblasti
služba Azure Web PubSub je služba s jednou oblastí. Pokud se oblast stane nedostupnou, prostředek Web PubSub je také nedostupný.
K ochraně aplikace před selháním v celé oblasti můžete použít geografickou replikaci, která je dostupná na úrovni Premium. Alternativně můžete vytvořit vlastní řešení ve více oblastech nasazením více prostředků Web PubSub v různých oblastech.
Geografická replikace
Geografická replikace vám umožňuje přidat repliky vašeho prostředku Web PubSub v jiných oblastech Azure. Všechny repliky sdílejí jeden koncový bod (contoso.webpubsub.azure.com). Za tímto koncovým bodem Azure Traffic Manager používá směrování založené na DNS, které přesměruje každého klienta na nejbližší regionální repliku, která je v pořádku. Pokud dojde k selhání oblasti, Traffic Manager zjistí selhání prostřednictvím kontrol stavu a přestane směrovat klienty na příslušnou repliku. Nová klientská připojení se automaticky směrují na nejbližší repliku, která je v pořádku.
Oblast, ve které jste vytvořili prostředek Web PubSub, se nazývá primární oblast a její replika je primární replika. Řídicí rovina primárního prostředku spravuje konfiguraci prostředku Web PubSub.
Požadavky
- Region support: Repliky můžete přidat v libovolné oblasti, kde je dostupná služba Azure Web PubSub Service.
- Úroveň: K povolení geografické replikace musíte použít úroveň Premium.
- Limit repliky: Každý primární prostředek Web PubSub podporuje až osm replik.
Úvahy
Dědičnost konfigurace: Repliky dědí většinu nastavení konfigurace z primárního prostředku. Určitá nastavení musí být pro každou repliku nakonfigurovaná samostatně. Úplný seznam nastavení, která nejsou zděděná, najdete v tématu Geo-replication v Azure Web PubSub.
Změny konfigurace: Primární řídicí rovina v primární oblasti zpracovává všechny změny konfigurace prostředku Web PubSub. Pokud primární řídicí rovina není dostupná, nebudete moct aktualizovat konfiguraci prostředků, i když stávající repliky budou bez přerušení dál zpracovávat přenosy dat.
Cost
Každá replika se fakturuje samostatně na základě počtu vlastních jednotek a objemu odchozích zpráv. Pokud se zpráva přenese mezi replikami a pak se doručí klientovi nebo serveru v jiné oblasti, bude se fakturovat jako odchozí zpráva. Další informace najdete v tématu Azure Web PubSub ceny služeb.
Konfigurace geografické replikace
Pokud chcete přidat nebo odebrat repliku do prostředku Web PubSub, přečtěte si téma Geo-replication v Azure Web PubSub.
Plánování a řízení kapacit
Každá replika zpracovává provoz nezávisle. Během regionálního převzetí služeb při selhání se klienti z oblasti, která selhala, znovu připojují k nejbližší replikě, která je v pořádku. Aby se zajistilo, že přežívající repliky mají dostatečnou kapacitu pro absorbování tohoto dodatečného zatížení, nakonfigurujte každou repliku s jednotkami schopnými zpracovat plný očekávaný provoz pracovní zátěže, nejen část, kterou normálně obsluhuje.
Případně můžete umožnit automatické škálování u jednotlivých replik, aby jednotky mohly automaticky škálovat v reakci na vyšší zatížení. Automatické škálování bude fungovat i v případě, že sekundární replika není k dispozici, ale automatické škálování nefunguje, pokud primární řídicí rovina není k dispozici. Další informace o automatickém škálování najdete v tématu Automaticky škálovat jednotky služby Azure Web PubSub.
Obecné pokyny k nadměrnému zřízení jako strategie najdete v tématu Správa kapacity prostřednictvím nadměrného zřízení.
Chování, když jsou všechny oblasti v pořádku
Tato část popisuje, co očekávat při konfiguraci služby Azure Web PubSub Service pro geografickou replikaci a všechny oblasti jsou funkční.
Operace napříč oblastmi: Azure Traffic Manager směruje každého klienta do nejbližší zdravé regionální repliky. Klienti v různých geografických oblastech se můžou připojit k různým replikám. Služba Web PubSub synchronizuje zprávy mezi replikami, aby klienti připojení k jakékoli replice mohli vzájemně komunikovat.
Replikace dat mezi oblastmi: Když se zpráva odešle do repliky, služba synchronně přenese tuto zprávu do jiných replik, aby ji klienti připojení jinde mohli přijmout. Režijní náklady na synchronizaci jsou minimální u nejběžnějších vzorů zasílání zpráv, jako je vysílání do velkých skupin nebo zasílání zpráv jednotlivému připojení. Zasílání zpráv malým skupinám (méně než 10 členů) může způsobit mírně vyšší režii synchronizace.
Azure Web PubSub služba nezachovává zprávy; synchronizuje pouze aktivní doručování mezi replikami.
Chování při selhání oblasti
Tato část popisuje, co očekávat, když nakonfigurujete službu Azure Web PubSub pro geografickou replikaci a dojde k výpadku v jedné z oblastí repliky.
- Detekce a odpověď: Služba Web PubSub zodpovídá za detekci selhání v oblasti a automatické přesměrování příchozího provozu na repliku v jedné z ostatních oblastí, které nakonfigurujete.
Oznámení: Microsoft vás automaticky neoznámí, když je oblast mimo provoz. Mějte však na paměti následující:
K monitorování stavu jednotlivých prostředků můžete použít Azure Resource Health a můžete nastavit výstrahy Resource Health, které vás upozorní na problémy.
Pomocí Azure Service Health můžete porozumět celkovému stavu služby, včetně případných selhání regionů, a můžete nastavit výstrahy na stav služby, které vás upozorní na problémy.
Aktivní požadavky: Aktivní připojení Protokolu WebSocket k replice v oblasti, která selhala, se zahodí. Klienti se musí po převzetí služeb při selhání repliky znovu připojit.
Očekávaná ztráta dat: služba Azure Web PubSub zprávy neukládá. Zprávy, které byly přenášeny ke klientům v postižené oblasti v době výpadku, mohou být ztraceny. Neočekává se žádná trvalá ztráta dat, protože služba neukládá zákaznická data.
Expected downtime: Azure Traffic Manager provádí kontroly stavu pro každou repliku. Když výpadek oblasti způsobí selhání kontroly stavu repliky, Traffic Manager odebere koncový bod repliky z výsledků překladu DNS. Po odstranění koncového bodu se musí uplynout 90 sekund, než klienti uvidí aktualizované DNS záznamy. Přechod obvykle trvá několik minut. Dobře navržení klienti, kteří implementují logiku opětovného připojení, můžou po opětovném připojení k replikě, která je v pořádku, obnovit normální provoz.
Pokud primární řídicí rovina není k dispozici, nemůžete provést žádné změny konfigurace prostředku Web PubSub nebo jejích replik. Připojení WebSocket však nadále fungují ve zdravých replikách.
Redistribution: Azure Traffic Manager směruje příchozí požadavek na repliky, které jsou v pořádku. Pokud se však klient pokusí znovu připojit předtím, než Azure Traffic Manager zjistí převzetí služeb při selhání repliky a aktualizované položky DNS se rozšířily do klienta, může pokus o opětovné připojení klienta pokračovat v cílení na nedostupnou oblast a může selhat.
Po rozšíření aktualizace DNS se opětovná připojení klientů automaticky směruje na nejbližší repliku, která je v pořádku.
Obnovení oblasti
Po obnovení oblasti, která selhala, kontrola stavu Traffic Manageru zjistí obnovenou repliku a znovu zahrne její koncový bod do překladu DNS. Klienti, kteří jsou aktuálně připojení k jiným replikám, nejsou ovlivněni a zůstanou připojení, dokud se neodpojí. Nová připojení jsou znovu směrována na repliku z obnovené oblasti, pokud je to nejbližší funkční replika.
Testování selhání regionů
Chcete-li simulovat přepnutí oblasti při selhání a otestovat chování opětovného připojení vaší klientské aplikace, můžete zakázat koncový bod repliky. Tato akce způsobí, že Traffic Manager zastaví směrování provozu do této repliky, což vám umožní sledovat, jak se vaši klienti chovají, když se replika, ke které se připojí, nedostupná. Podrobné kroky najdete v tématu Zakázání nebo povolení koncového bodu repliky.
Vlastní řešení pro více regionů pro zajištění odolnosti
Pokud potřebujete odolnost mezi oblastmi, ale nepoužíváte geografickou replikaci, můžete nasadit a spravovat samostatné prostředky Web PubSub ve více oblastech a implementovat vlastní logiku převzetí služeb při selhání na aplikačním serveru. Tento přístup je složitější než geografická replikace a nepodporuje převzetí služeb při selhání bez výpadků pro připojení mezi klienty. Podrobný přehled architektury, vzory pro převzetí služeb při selhání a pokyny k testování najdete v tématu Odolnost a zotavení po havárii ve službě Azure Web PubSub.
Zálohování a obnovení
Azure Web PubSub Service je bezstavová služba zasílání zpráv. Neuchovává zprávy zákazníků a nemá žádnou možnost zálohování ani obnovení.
Pokud chcete chránit konfiguraci prostředků, definujte prostředky Web PubSub pomocí infrastruktury (například Bicep nebo šablon ARM) a uložte tyto definice do správy zdrojového kódu. Pokud potřebujete prostředek znovu vytvořit, znovu ho nasaďte z uložené konfigurace.
Odolnost vůči údržbě služeb
Microsoft pravidelně používá aktualizace služeb a provádí další údržbu. Platforma Azure tyto aktivity zpracovává automaticky a zajišťuje, aby byla údržba pro vás bezproblémová a transparentní. Během událostí údržby není očekáván výpadek, pokud jste nebyli informováni prostřednictvím plánované údržby služby Azure Service Health.
Smlouva o úrovni služeb
Smlouva o úrovni služeb (SLA) pro služby Azure popisuje očekávanou dostupnost každé služby a podmínky, které musí vaše řešení splnit, aby bylo dosaženo očekávané dostupnosti. Další informace najdete v tématu Smlouvy SLA pro online služby.