AppFabric Redundancy - PullRequest
       56

AppFabric Redundancy

6 голосов
/ 20 января 2011

Мы только что протестировали кластер AppFabric из двух серверов, где мы удалили «ведущий» сервер. Таймауты второго сервера по любому запросу к нему с ошибкой:

Microsoft.ApplicationServer.Caching.DataCacheException: ErrorCode : SubStatus : Есть временный сбой. Пожалуйста, попробуйте позже. (Один или несколько указанных серверов кэша недоступны, что может быть вызвано загруженностью сети или серверов. Убедитесь, что для этой учетной записи клиента в кластере предоставлено разрешение безопасности и что служба кэширования AppFabric разрешена через брандмауэр на всех хостах кэша. Повторите попытку позже.)

В практическом смысле это означает, что если один сервер в кластере выходит из строя, то все они выходят из строя. (Обратите внимание, что мы не используем кластер Windows, а только связываем несколько серверов кэша AppFabric друг с другом.)

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

(Я понимаю, что этот вопрос ограничивает Serverfault, но имхо разработчики должны это знать.)

Ответы [ 3 ]

7 голосов
/ 21 января 2011

Вам потребуется установить кэш AppFabric как минимум на трех ведущих серверах, чтобы кэш выдержал один сбой сервера.Документы утверждают, что кластер выйдет из строя, только если «большинство» ведущих серверов выйдет из строя, но в мелком шрифте они объясняют, что 1 из 2 составляет большинство.Я убедился, что удаление сервера из кластера из трех ведущих узлов работает так, как было объявлено.

2 голосов
/ 21 января 2011

Типичная концепция распределенных систем.Для того, чтобы кворум записи или чтения имел место в ансамбле, вам нужно иметь 2f + 1 серверов, где f - количество отказавших серверов.Я думаю, что appfabric или любые CP (как в теореме CAP) консенсусные системы должны это делать для работы кластера.

- Sai

0 голосов
/ 06 июня 2013

Это на самом деле проблема с архитектурой Appfabric, и это довольно запутанно с точки зрения концепции «ведущий-хост».Идея заключается в том, что большинство ведущих хостов должны работать так, чтобы кластер работал и работал.Таким образом, если бы у вас было три сервера, вы должны были бы иметь как минимум два ведущих хоста, постоянно взаимодействующих друг с другом и поглощающих ресурсы сервера, и если оба сервера вышли из строя, весь кластер вышел из строя.Идея состоит в том, чтобы иметь одноранговую архитектуру, в которой все серверы действуют как одноранговые, что означает, что даже если два сервера выйдут из строя, кластер будет функционировать без простоев приложений.Попробуйте NCache:

http://www.alachisoft.com/ncache/

...