Menskalakan ASP.NET Core SignalR dengan Azure SignalR Service

Mengembangkan aplikasi SignalR

SignalR saat ini tersedia dalam dua versi untuk digunakan dengan aplikasi web:

  • ASP.NET SignalR
  • ASP.NET Core SignalR baru

ASP.NET Core SignalR adalah penulisan ulang dari versi sebelumnya. Akibatnya, ASP.NET Core SignalR tidak kompatibel mundur dengan versi SignalR sebelumnya. API dan perilakunya berbeda. Azure SignalR Service mendukung kedua versi.

Azure SignalR Service memungkinkan Anda menghosting aplikasi web aktual Anda di beberapa platform (Windows, Linux, dan macOS) Azure App Service, IIS, Nginx, Apache, Docker. Anda juga dapat menggunakan hosting mandiri dalam proses Anda sendiri.

Azure SignalR Service adalah pilihan terbaik jika tujuan untuk aplikasi Anda meliputi:

  • mendukung fungsionalitas terbaru untuk memperbarui klien web dengan pembaruan konten real time,
  • berjalan di beberapa platform (Azure, Windows, Linux, dan macOS)
  • hosting di lingkungan yang berbeda

Mengapa tidak menyebarkan SignalR sendiri?

Ini masih merupakan pendekatan yang valid untuk menyebarkan aplikasi web Azure Anda sendiri yang mendukung SignalR sebagai komponen backend ke aplikasi web Anda secara keseluruhan.

Salah satu alasan utama untuk menggunakan Azure SignalR Service adalah kesederhanaan. Dengan Azure SignalR Service, Anda tidak perlu menangani masalah seperti performa, skalabilitas, ketersediaan. Masalah ini ditangani untuk Anda dengan perjanjian tingkat layanan 99,9%.

Selain itu, WebSocket biasanya merupakan teknik yang disukai untuk mendukung pembaruan konten real time. Namun, penyeimbangan beban sejumlah besar koneksi WebSocket persisten menjadi masalah rumit untuk dipecahkan saat Anda menskalakan. Penggunaan solusi umum: Penyeimbangan beban DNS, penyeimbang beban perangkat keras, dan penyeimbangan beban perangkat lunak. Azure SignalR Service menangani masalah ini untuk Anda.

Untuk ASP.NET Core SignalR, alasan lain mungkin Anda tidak memiliki persyaratan untuk benar-benar menghosting aplikasi web. Logika aplikasi web Anda mungkin menggunakan komputasi Tanpa Server. Misalnya, mungkin kode Anda hanya dihosting dan dijalankan sesuai permintaan dengan pemicu Azure Functions. Skenario ini bisa menantang karena kode Anda hanya berjalan sesuai permintaan dan tidak mempertahankan koneksi panjang dengan klien. Azure SignalR Service dapat menangani situasi ini karena layanan sudah mengelola koneksi untuk Anda. Untuk informasi selengkapnya, lihat gambaran umum tentang cara menggunakan SignalR Service dengan Azure Functions. Karena ASP.NET SignalR menggunakan protokol yang berbeda, mode Tanpa Server tersebut tidak didukung untuk ASP.NET SignalR.

Bagaimana cara kerjanya?

Adalah umum untuk menskalakan SignalR dengan SQL Server, Azure Bus Layanan, atau Azure Cache for Redis. Azure SignalR Service menangani pendekatan penskalaan untuk Anda. Performa dan biaya sebanding dengan pendekatan ini tanpa kompleksitas berurusan dengan layanan lain ini. Yang harus Anda lakukan adalah memperbarui jumlah unit untuk layanan Anda. Setiap unit mendukung hingga 1000 koneksi klien.

Langkah berikutnya