2016-08-29 6 views
0

Мы пытаемся масштабировать нашу среду. Я использовал класс ConnectionMapper, например, здесь: http://www.asp.net/signalr/overview/guide-to-the-api/mapping-users-to-connections, чтобы сохранить список подключений.Соединения SignalR с задней панелью

Как бы это сделать в кластере (2 узла)? я бы использовал объединительную плату? http://www.asp.net/signalr/overview/performance/scaleout-in-signalr

А затем переместить соединения в SQL DB?

Это приложение для MVC.

+0

Вы имеете в виду [объединительная плата] (http://www.asp.net/signalr/overview/performance/scaleout-in-signalr)? – hometoast

+1

есть. Объединительный. Кроме того, не уверены «объединительная плата» и «Соединения». Или это совсем не так. Я бы по-прежнему использовал тот же класс ConnectionMapper, и backplate мог бы узнать, к какому пользователю отправить сообщение? – ShaneKm

ответ

1

Хм, вы не могли использовать что-то вроде Mapping Connection с объединительной панелью. Проблема с таким отображением в памяти заключается в том, что вы не сможете общаться между узлами, не используя таблицу базы данных, но это также было бы болезненным (поиск в db для каждого отправленного сообщения?).

Вы бы сделали лучше, используя группы (например, добавив каждого пользователя из компании ABC в группу «ABC» - или, возможно, используйте уникальный идентификатор, такой как companyId, из таблицы базы данных. один узел, то вы можете начать использовать заднюю панель ...

Группа Документов http://www.asp.net/signalr/overview/guide-to-the-api/working-with-groups

Но затем снова есть проблемы с использованием объединительной платы - то есть то, что вы надеетесь достичь с помощью объединительной платы Взгляните? что SignalR описывает как ограничение использования объединительной платы в http://www.asp.net/signalr/overview/performance/scaleout-in-signalr. Масштабирование объединительной платы - это боль, так как есть хороший шанс, что она может иметь нижний беспорядок возрастной пропускной способности и более высокая латентность, а не один узел schenario ... В примере игры - вам может быть лучше, если каждый узел будет полностью независимым и будет направлять пользователей на правильный узел (так что в узлах A хосты игры 1 - 8 , а узлы B - игры 9 - 16)