Перейти к содержанию

Масштабирование приложения SignalR

Если в вашем приложении предполагается не более нескольки тысяч пользователей — о масштабировании можно не задумываться. Но что делать, если ожидается, что приложение будут одновременно использовать сотни тысяч или даже миллионы клиентов? Тогда единичный сервер просто не справится, и необходимо подумать о масштабировании.
Масштабировать приложение без состояния (stateless) довольно просто. Вы просто добавляете ещё сервера. Но что делать, если приложению необходимо поддерживать постоянное соединение, как в случае с SignalR? Кроме того, необходимо поддерживать способность отправки сообщений отдельным клиентам и группам. Что если эти клиенты или группы будут подключены к другой реплике?
К счастью, SignalR обладает механизмом масштабирования, который позволяет нескольким репликам приложения работать как единому целому. И сейчас мы его разберём.

Настраиваем объединительную панель Redis

Используем множество реплик хаба с помощью объединительной панели Redis


Ещё одна важная тема: как отправить сообщение подключённым к хабу клиентам НЕ из кода хаба? Это делается при помощи сущности под названием HubContext.

Используем HubContext для отправки сообщений извне хаба SignalR


Последнее обновление : 18 июня 2023 г.
Дата создания : 2 марта 2023 г.

Комментарии

Комментарии