Здравствуйте, DaDa Cloun, Вы писали:
DC>Приветствую всех!
DC>Возникла задача синхронизации нескольких серверов, обрабатывающих запросы от клиентов. Сервера находятся за load balancing и сессия не привязывается к конкретному серверу. DC>Проблема возникла абсолютно классическая: клиент шлет запросы на обновления его состояния, они выполняются в различном порядке различными серверами, что, в итоге, приводит к неверному состоянию. Требуется выбирать состояние, проверять очередность и сохранять. Но на период между выборкой и сохранением нужно блокировать состояние. Отсюда и возникает эта задача. DC>Так как состояние храниться в базе и в кеше (memcached) то неясно, через что производить блокировку. DC>Если через базу, то в случае масштабирования серверов баз данных (а мы используем MS SQL) master-slave этот подход не будет работать. DC>В memcached я не нашел механизмов синхронизации (может кто знает?) DC>И думается мне, что лучше взять еще один сервер БД (или что-то специализированное для этого) и делать через него синхронизацию. DC>Вопрос состоит в том, как лучше поступить? И какие средства существуют для этого? DC>Сервер реализован на платформе .NET 3.5.
DC>Всем спасибо за ответы.
Лучше всего для такого использовать средства БД, руками такое писать замучаетесь.