2010-03-23 2 views
0

У нас есть приложение, работающее на балансировочной среде, скажем, веб-сервер A и B. Балансировка нагрузки находится на уровне HTTP, поэтому loadbalancer направляет каждый запрос пользователя на один из двух вебсервер.Объект репозитория области приложения Spring.net в приложении с балансировкой нагрузки

Объем хранилищ в приложении управляется контейнером spring.net, , и приложение использует данные, которые могут быть кэшированы репозиторием (причины производительности).

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

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

Любые идеи?

Thx,

Bert

ответ

1

Spring.NET является контейнером объекта. Он не предназначен для использования в качестве кэширующего контейнера, поэтому вы не должны хранить свои данные в репозиториях. В этом случае вам понадобится решение для распределенного кэширования, такое как memcached. Он имеет .NET client library also.

Таким образом, в основном ваши репозитории сначала будут искать в распределенном кеше, если объект существует, а если нет, то удалите реальное хранилище данных, чтобы получить объект и сохранить его в кеш. Spring.NET будет обрабатывать время жизни этих репозиториев и, поскольку вы работаете в webfarm, у вас будет репозиторий на сервер, но это не будет проблемой, потому что эти репозитории будут использовать распределенный кеш для извлечения данных, чтобы вы получили согласованные резултаты между всеми серверами фермы.

+0

Thx для вашего ответа. Мы не используем весенний контейнер в качестве кеша, но один из управляемых объектов может иметь кэшированные данные. Неправильно ли хранить данные в ddd-репозиториях? И почему так? (кроме того, что приложение распространяется на несколько веб-серверов) –

+0

Поскольку хранение данных в объектах означает его сохранение в памяти. В случае, если у вас много использования памяти данных, вы можете стать высоко на своих серверах. Другая проблема связана с распределением кеша. В сценарии webfarm вам нужно будет синхронизировать эти данные, для которых предназначены распределенные кэшированные системы. –