Škálování aplikací ASP.NET Core SignalR pomocí služby Azure SignalR

Vývoj aplikací SignalR

SignalR je aktuálně k dispozici ve dvou verzích pro použití s webovými aplikacemi:

  • ASP.NET SignalR
  • new ASP.NET Core SignalR

SignalR pro ASP.NET Core je přepsaná předchozí verze. Výsledkem je, že ASP.NET Core SignalR není zpětně kompatibilní se starší verzí SignalR. Rozhraní API a chování se liší. Služba Azure SignalR podporuje obě verze.

Služba Azure SignalR umožňuje hostovat skutečnou webovou aplikaci na několika platformách (Windows, Linux a macOS) Aplikace Azure Service, IIS, Nginx, Apache, Docker. Ve vlastním procesu můžete využít také samoobslužné hostování.

Služba Azure SignalR je nejlepší volbou, pokud mezi cíle vaší aplikace patří:

  • podpora nejnovějších funkcí pro aktualizaci webových klientů pomocí aktualizací obsahu v reálném čase,
  • provoz napříč několika platformami (Azure, Windows, Linux a macOS)
  • hostování v různých prostředích

Proč nepoužít vlastní nasazení SignalR?

Stále je to platný přístup k nasazení vlastní webové aplikace Azure podporující SignalR jako back-endové komponenty do celkové webové aplikace.

Jedním z hlavních důvodů, proč použít službu Azure SignalR, je jednoduchost. Díky službě Azure SignalR nemusíte řešit problémy s výkonem, škálovatelností ani dostupností. Tyto problémy za vás řeší smlouva o úrovni služeb (SLA) zajišťující 99,9% dostupnost.

Kromě toho se pro zajištění podpory aktualizací obsahu v reálném čase obvykle upřednostňují protokoly WebSocket. Při škálování se však může z vyrovnávání zatížení velkého počtu trvalých připojení WebSocket stát složitý problém, který budete muset řešit. Běžná řešení používají: vyrovnávání zatížení DNS, nástroje pro vyrovnávání zatížení hardwaru a vyrovnávání zatížení softwaru. Služba Azure SignalR řeší tento problém za vás.

Pro ASP.NET Core SignalR může být dalším důvodem, proč nemáte žádné požadavky na skutečné hostování webové aplikace. Logika webové aplikace může používat bezserverovou architekturu. Váš kód například může být hostovaný a spouštěný pouze na vyžádání pomocí triggerů Azure Functions. Tento scénář může být náročný, protože váš kód běží jenom na vyžádání a neudržuje dlouhá připojení s klienty. Služba Azure SignalR dokáže tuto situaci řešit díky tomu, že už za vás spravuje připojení. Další informace najdete v přehledu použití služby SignalR s Azure Functions. Vzhledem k tomu, že ASP.NET SignalR používá jiný protokol, není pro ASP.NET SignalR podporovaný bezserverový režim.

Jak se škáluje?

Služba SignalR se běžně škáluje s VYUŽITÍM SQL Serveru, Azure Service Bus nebo Azure Cache for Redis. Služba Azure SignalR se stará o postup škálování za vás. Výkon a náklady jsou srovnatelné s těmito postupy, ale bez složité správy těchto dalších služeb. Stačí pouze aktualizovat počet jednotek pro vaši službu. Každá jednotka podporuje až 1000 klientských připojení.

Další kroky