Объект репозитория области применения Spring.net в приложении с балансировкой нагрузки - PullRequest
0 голосов
/ 23 марта 2010

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

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

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

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

Есть идеи?

Thx,

Берт

1 Ответ

1 голос
/ 23 марта 2010

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

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

...