.NET активный пассивный кластерный алгоритм

У меня есть много серверов Windows. Я хочу выполнить одну копию той же службы Windows (записанный в.NET) на каждом из серверов, таким образом, что в любой момент только один из них "активен" и все, что другие пассивны. Если сервис активных окон умирает затем очень спустя некоторое время один, и только один, остающихся пассивных сервисов окон становится активным.

Какие-либо идеи простых способов достигнуть этого?

1
задан freddy smith 30 June 2010 в 16:55
поделиться

1 ответ

Что ж, вам нужно поддерживать их синхронизацию. Самый простой способ - создать где-нибудь в базе данных запись, к которой они все могут получить доступ. Попросите активную службу обновлять определенную строку и т. Д. Каждые определенное количество минут. Если обновление не найдено в течение определенного промежутка времени, другие службы могут принять это, поскольку активный перешел в автономный режим. Конечно, ваша проблема здесь в том, что если база данных отключится, то у служб возникнут проблемы, так что это потенциально единственная точка отказа. Вы можете облегчить это, если также сгруппируете db.

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

2
ответ дан 2 September 2019 в 23:23
поделиться
Другие вопросы по тегам:

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