Azure SignalR Hizmeti ile ASP.NET Core SignalR uygulamalarını ölçeklendirme

SignalR uygulamaları geliştirme

SignalR şu anda web uygulamalarıyla kullanılmak üzere iki sürümde kullanılabilir:

  • ASP.NET SignalR
  • yeni ASP.NET Core SignalR

ASP.NET Core SignalR, önceki sürümün yeniden üretimidir. Sonuç olarak, ASP.NET Core SignalR önceki SignalR sürümüyle geriye dönük olarak uyumlu değildir. API’ler ve davranışlar farklıdır. Azure SignalR Hizmeti her iki sürümü de destekler.

Azure SignalR Hizmeti gerçek web uygulamanızı Service, IIS, Nginx, Apache, Docker Azure Uygulaması birden çok platformda (Windows, Linux ve macOS) barındırmanıza olanak tanır. Ayrıca, işleminizin içinde kendi kendine barındırmayı da kullanabilirsiniz.

uygulamanızın hedefleri şunlarsa Azure SignalR Hizmeti en iyi seçenektir:

  • web istemcilerini gerçek zamanlı içerik güncelleştirmeleriyle güncelleştirmeye yönelik en son işlevselliği desteklemek,
  • birden çok platformda (Azure, Windows, Linux ve macOS) çalışma
  • farklı ortamlarda barındırma

SignalR’yi neden kendim dağıtamıyorum?

SignalR'yi genel web uygulamanıza arka uç bileşeni olarak destekleyen kendi Azure web uygulamanızı dağıtmak için hala geçerli bir yaklaşımdır.

Azure SignalR Hizmeti’ni kullanmanın başlıca nedenlerinden biri kolaylık sağlamasıdır. Azure SignalR Hizmeti ile performans, ölçeklenebilirlik ve kullanılabilirlik gibi sorunları ele almanız gerekmez. Bu sorunlar % 99,9 hizmet düzeyi sözleşmesi ile sizin yerinize ele alınır.

Ayrıca, gerçek zamanlı içerik güncelleştirmelerini desteklemek için WebSockets genellikle tercih edilen yöntemdir. Bununla birlikte, çok sayıda kalıcı WebSocket bağlantısı ile yük dengelemesi yapmak, ölçeği artırdıkça çözülmesi karmaşık bir sorun haline gelir. Yaygın çözümler şunları kullanır: DNS yük dengeleme, donanım yük dengeleyicileri ve yazılım yükü dengeleme. Azure SignalR Hizmeti bu sorunu sizin için halleder.

ASP.NET Core SignalR için başka bir neden de bir web uygulaması barındırma gereksiniminiz olmaması olabilir. Web uygulamanızın mantığı Sunucusuz bilgi işlem kullanabilir. Örneğin, kodunuz yalnızca Azure İşlevleri tetikleyicileri ile isteğe bağlı olarak barındırılıyor ve yürütülüyor olabilir. Kodunuz yalnızca isteğe bağlı olarak çalıştığından ve istemcilerle uzun bağlantılar sağlamadığından bu senaryo zor olabilir. Azure SignalR Hizmeti, bağlantıları zaten yönettiği için bu durumu sizin yerinize çözebilir. Daha fazla bilgi için bkz. Azure İşlevleri ile SignalR Hizmeti kullanma hakkında genel bakış. ASP.NET SignalR farklı bir protokol kullandığından, bu tür Sunucusuz mod ASP.NET SignalR için desteklenmez.

Nasıl ölçeklendirilir?

SignalR'yi SQL Server, Azure Service Bus veya Redis için Azure Cache ile ölçeklendirmek yaygındır. Azure SignalR Hizmeti, ölçeklendirme yaklaşımını sizin yerinize ele alır. Performans ve maliyet, bu yaklaşımlarla benzerdir ve diğer hizmetlerdeki gibi karmaşık değildir. Tüm yapmanız gereken, hizmetiniz için birim sayısını güncelleştirmektir. Her birim en fazla 1000 istemci bağlantısını destekler.

Sonraki adımlar