Zprávy a připojení ve službě Azure SignalR
Model fakturace služby Azure SignalR vychází z počtu připojení a počtu odchozích zpráv ze služby. Tento článek vysvětluje, jak se definují a započítávají zprávy a připojení pro fakturaci.
Formáty zpráv
Služba Azure SignalR podporuje stejné formáty jako ASP.NET Core SignalR: JSON a MessagePack.
Velikost zprávy
Pro zprávy služby Azure SignalR platí následující omezení:
- Klientské zprávy:
- U dlouhých událostí dotazování nebo na straně serveru nemůže klient odesílat zprávy větší než 1 MB.
- Pro webSocket pro službu neexistuje žádné omezení velikosti.
- Aplikační server může nastavit limit pro velikost zprávy klienta. Výchozí hodnota je 32 kB. Další informace najdete v tématu Aspekty zabezpečení v ASP.NET Core SignalR.
- U bezserverové verze je velikost zprávy omezená upstreamovou implementací, ale doporučuje se méně než 1 MB.
- Zprávy serveru:
- Velikost zprávy serveru není nijak omezena, ale doporučuje se méně než 16 MB.
- Aplikační server může nastavit limit pro velikost zprávy klienta. Výchozí hodnota je 32 kB. Další informace najdete v tématu Aspekty zabezpečení v ASP.NET Core SignalR.
- Bezserverová služba:
- Rest API: 1 MB textu zprávy, 16 kB pro hlavičky.
- Neexistuje žádné omezení pro webSocket, persis sady SDK pro správu režim stanu, ale doporučuje se méně než 16 MB.
U klientů WebSocket jsou velké zprávy rozděleny do menších zpráv, které nejsou větší než 2 kB a přenášeny samostatně. Sady SDK zpracovávají dělení zpráv a sestavení. Nejsou potřeba žádné vývojářské snahy.
Velké zprávy mají negativní vliv na výkon zasílání zpráv. Používejte menší zprávy, kdykoli je to možné, a otestujte optimální velikost zprávy pro každý scénář použití.
Jak se započítávají zprávy pro fakturaci
Zprávy odeslané do služby jsou příchozí zprávy a zprávy odeslané ze služby jsou odchozí zprávy. Pro fakturaci se počítají jenom odchozí zprávy ze služby Azure SignalR. Zprávy Ping mezi klientem a serverem se ignorují.
Zprávy větší než 2 kB se počítají jako více zpráv o 2 kB. Graf počtu zpráv na webu Azure Portal se aktualizuje každých 100 zpráv na centrum.
Představte si například, že máte jeden aplikační server a tři klienty:
Když aplikační server vysílá zprávu 1 kB všem připojeným klientům, považuje se zpráva ze aplikačního serveru do služby za bezplatnou příchozí zprávu. Tři zprávy odeslané ze služby do každého z klientů jsou odchozí zprávy a fakturují se.
Když klient A odešle klientovi B příchozí zprávu o 1 kB, aniž by procházel aplikačním serverem, je tato zpráva bezplatnou příchozí zprávou. Zpráva směrovaná ze služby do klienta B se účtuje jako odchozí zpráva.
Když jeden klient odešle zprávu o 4 kB pro všesměrové vysílání serveru všem klientům a existují tři klienty a jeden aplikační server, fakturovaná zpráva je osm:
- Jedna zpráva ze služby na aplikační server.
- Tři zprávy ze služby klientům. Každá zpráva se počítá jako dvě 2kB zprávy.
Jak se počítá připojení
Služba Azure SignalR vytvoří aplikační server a klientská připojení. Ve výchozím nastavení každý aplikační server začíná s pěti počátečními připojeními na centrum a každý klient má jedno klientské připojení.
Předpokládejme například, že máte dva aplikační servery a v kódu definujete pět center. Počet připojení k serveru je 50: (2 aplikační servery * 5 rozbočovačů * 5 připojení na rozbočovač).
Počet připojení zobrazený na webu Azure Portal zahrnuje připojení k serveru, klientovi, diagnostice a živému trasování. Typy připojení jsou definovány v následujícím seznamu:
- Připojení k serveru: Připojí službu Azure SignalR a aplikační server.
- Připojení klienta: Připojí službu Azure SignalR a klientskou aplikaci.
- Diagnostické připojení: Speciální typ připojení klienta, který může vytvořit podrobnější protokol, který může ovlivnit výkon. Tento typ klienta je určený pro řešení potíží.
- Živé připojení trasování: Připojuje se ke koncovému bodu živého trasování a přijímá živé trasování služby Azure SignalR.
Živé trasování připojení se nezapočítává jako připojení klienta ani jako připojení k serveru.
ASP.NET SignalR počítá připojení serveru jiným způsobem. Kromě rozbočovačů, které definujete, zahrnuje i jedno výchozí centrum. Ve výchozím nastavení každý aplikační server potřebuje pět dalších počátečních připojení k serveru. Počáteční počet připojení výchozího rozbočovače zůstává konzistentní s ostatními rozbočovači.
Služba a aplikační server neustále synchronizují stav připojení a upravují připojení k serveru, aby se zlepšil výkon a stabilita služeb. Může se tedy zobrazit změna počtu připojení serveru ve spuštěné službě.