.net активный пассивный кластерный алгоритм - PullRequest
1 голос
/ 30 июня 2010

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

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

1 Ответ

2 голосов
/ 30 июня 2010

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

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

...