Azure SignalR Hizmeti'da iletiler ve bağlantılar

Azure SignalR Hizmeti faturalama modeli, bağlantı sayısına ve hizmetten giden ileti sayısına bağlıdır. Bu makalede, iletilerin ve bağlantıların nasıl tanımlandığı ve faturalama için nasıl sayıldıları açıklanmaktadır.

İleti biçimleri

Azure SignalR Hizmeti, ASP.NET Core SignalR ile aynı biçimleri destekler: JSON ve MessagePack.

İleti boyutu

Azure SignalR Hizmeti iletileri için aşağıdaki sınırlar geçerlidir:

  • İstemci iletileri:
    • Uzun yoklama veya sunucu tarafı olayları için istemci 1 MB'tan büyük iletiler gönderemez.
    • Hizmet için WebSocket için boyut sınırı yoktur.
    • Uygulama sunucusu, istemci ileti boyutu için bir sınır ayarlayabilir. Varsayılan değer 32 KB'tır. Daha fazla bilgi için bkz . ASP.NET Core SignalR'da güvenlikle ilgili dikkat edilmesi gerekenler.
    • Sunucusuz için ileti boyutu yukarı akış uygulamasıyla sınırlıdır, ancak 1 MB'ın altında olması önerilir.
  • Sunucu iletileri:
    • Sunucu ileti boyutu sınırı yoktur, ancak 16 MB'ın altında olması önerilir.
    • Uygulama sunucusu, istemci ileti boyutu için bir sınır ayarlayabilir. Varsayılan değer 32 KB'tır. Daha fazla bilgi için bkz . ASP.NET Core SignalR'da güvenlikle ilgili dikkat edilmesi gerekenler.
    • Sunucusuz:
      • Rest API: İleti gövdesi için 1 MB, üst bilgiler için 16 KB.
      • WebSocket, yönetim SDK'sı persis çadır modu için bir sınır yoktur, ancak 16 MB'ın altında olması önerilir.

WebSocket istemcileri için, büyük iletiler her birinde en fazla 2 KB olmayan ve ayrı olarak iletilen daha küçük iletilere bölünür. SDK'lar ileti bölme ve derleme işlemlerini işler. Geliştirici çabası gerekmez.

Büyük iletiler mesajlaşma performansını olumsuz etkiler. Mümkün olduğunda daha küçük iletiler kullanın ve her kullanım örneği senaryosu için en uygun ileti boyutunu belirlemek için test edin.

İletiler faturalama için nasıl sayılır?

Hizmete gönderilen iletiler gelen iletiler, hizmetten gönderilen iletiler ise giden iletilerdir. Yalnızca Azure SignalR Hizmeti giden iletiler faturalama için sayılır. İstemciler ve sunucular arasındaki ping iletileri yok sayılır.

2 KB'tan büyük iletiler her biri 2 KB'lık birden çok ileti olarak sayılır. Azure portalındaki ileti sayısı grafiği, hub başına her 100 iletide güncelleştirilir.

Örneğin, bir uygulama sunucunuz ve üç istemciniz olduğunu düşünün:

  • Uygulama sunucusu tüm bağlı istemcilere 1 KB'lık bir ileti yayımladığında, uygulama sunucusundan hizmete gelen ileti ücretsiz bir gelen ileti olarak kabul edilir. Hizmetten istemcilerin her birine gönderilen üç ileti giden iletilerdir ve faturalandırılır.

  • A istemcisi, uygulama sunucusuna gitmeden B istemcisine 1 KB'lık bir gelen ileti gönderdiğinde, ileti ücretsiz bir gelen iletidir. Hizmetten B istemcisine yönlendirilen ileti giden ileti olarak faturalandırılır.

  • Üç istemciniz ve bir uygulama sunucunuz varsa, bir istemci tüm istemcilere sunucu yayını için 4 KB ileti gönderdiğinde faturalanan ileti sayısı sekizdir:

    • Hizmetten uygulama sunucusuna bir ileti.
    • Hizmetten istemcilere üç ileti. Her ileti iki 2 KB ileti olarak sayılır.

Bağlantılar nasıl sayılır?

Azure SignalR Hizmeti uygulama sunucusu ve istemci bağlantıları oluşturur. Varsayılan olarak, her uygulama sunucusu hub başına beş ilk bağlantıyla başlar ve her istemcinin bir istemci bağlantısı vardır.

Örneğin, iki uygulama sunucunuz olduğunu ve kodda beş hub tanımladığınız varsayılır. Sunucu bağlantı sayısı 50'dir: (2 uygulama sunucusu * 5 hub * hub başına 5 bağlantı).

Azure portalında gösterilen bağlantı sayısı sunucu, istemci, tanılama ve canlı izleme bağlantılarını içerir. Bağlantı türleri aşağıdaki listede tanımlanmıştır:

  • Sunucu bağlantısı: Bağlan Azure SignalR Hizmeti ve uygulama sunucusu.
  • İstemci bağlantısı: Azure SignalR Hizmeti ve istemci uygulamasını Bağlan.
  • Tanılama bağlantısı: Performansı etkileyebilecek daha ayrıntılı bir günlük oluşturabilen özel bir istemci bağlantısı türüdür. Bu tür istemciler sorun giderme için tasarlanmıştır.
  • Canlı izleme bağlantısı: Canlı izleme uç noktasına Bağlan ve Azure SignalR Hizmeti canlı izlemelerini alır.

Canlı izleme bağlantısı, istemci bağlantısı veya sunucu bağlantısı olarak sayılmaz.

ASP.NET SignalR, sunucu bağlantılarını farklı bir şekilde hesaplar. Tanımladığınız hub'lara ek olarak bir varsayılan hub içerir. Varsayılan olarak, her uygulama sunucusunun beş ilk sunucu bağlantısına daha ihtiyacı vardır. Varsayılan hub'ın ilk bağlantı sayısı diğer hub'larla tutarlı kalır.

Hizmet ve uygulama sunucusu, daha iyi performans ve hizmet kararlılığı elde etmek için bağlantı durumunu eşitlemeye ve sunucu bağlantılarında ayarlamalar yapmaya devam eder. Bu nedenle, çalışan hizmetinizdeki sunucu bağlantısı sayısında değişiklikler görebilirsiniz.