Кластеризация серверов TCP, так может отправить данные всем клиентам

Извините, Вы "сделаны" - MS не поддерживает установку MSI, но продвигает людей к сценарию онлайн, как Вы узнали. "ЛЕГКИЙ" путь не существует - можно взять WIX, записать собственное cusom действие и выставить обменную установку в нем, но это не простой способ (особенно возможный сценарий отката).

Я предлагаю получить (официальную) работу сценария входа в систему. Сценарий по http://technet.microsoft.com/en-us/library/ff602181.aspx хорошо работает для меня - отмечают, что "двойной щелчок" не является тем же как запускающийся через GPO (куда это работает с поднятым priviledges).

0
задан 12 January 2012 в 01:03
2 ответа

Есть разные способы сделать это в зависимости от того, сколько серверов вы в конечном итоге ожидаете. Примерно до 50 серверов, вы можете выбрать два или три сервера, которые будут действовать как «концентраторы», каждый концентратор подключается к любому другому концентратору. Каждый не-концентратор подключается к двум концентраторам.

Отправить сообщение всем подключениям, кроме того, на котором вы его получили. Если вы получили повторяющееся сообщение, не обращайте на него внимания. Вам нужно будет отслеживать недавно полученные сообщения, чтобы обнаружить дубликаты.

Вы можете отслеживать рабочие серверы в базе данных.

В качестве альтернативы, используйте серверную структуру, которая уже делает это. Например, вы можете использовать IRC-серверы в качестве широковещательного уровня.

1
ответ дан 4 December 2019 в 21:58

Я работаю над новым проектом, который должен сделать TCP-серверы распределенными. Реализуем сервер на Java. И в моем решении используется Hazelcast (также реализованный на Java) для распространения карты, содержащей всех пользователей и очередь для хранения событий кластера.

С помощью карты я могу легко определить, в каком узле находится пользователь, поэтому, если serverA получил сообщение от пользователя1 к пользователю2, serverA может искать карту и оказывается, что пользователь2 находится на сервереB, поэтому serverA заключит сообщение в событие кластера с целевым сервером как ServerB и поместит его в очередь. Затем ServerB обработает событие и отправит сообщение пользователю 2.

Может быть некоторое влияние на пропускную способность и задержку во всем кластере, но, насколько известно, это допустимо.

0
ответ дан 4 December 2019 в 21:58

Теги

Похожие вопросы