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