Расширение кэша данных ASP.NET для совместного использования через веб-ферму

У меня есть приложение ASP.NET, которое широко использует API-интерфейс кэширования ASP.NET для кэширования часто используемых данных. Кроме того, я использую основанную на опросе зависимость кэша sql для отслеживания срока действия.

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

Можно ли просто перенести код для совместного использования кэша данных между несколькими серверами?

Я думал об использовании memcached, однако, это не будет работать с зависимостью кеша sql, верно?

Любые другие решения?

3 ответа

Решение

Вы смотрели на Windows Server AppFabric (ранее Velocity).

http://blogs.msdn.com/velocity/

Вы можете использовать следующие параметры -

  1. Используйте описанный здесь подход для синхронизации данных между веб-фермами - http://www.eggheadcafe.com/articles/20030420.asp

  2. Использовать подход распределенного кэширования

  3. Используйте корпоративную библиотеку кеша.

Мне кажется, что Windows Server AppFabric - это именно то, что вы ищете. (АКА "Скорость"). Из вступительной документации:

Windows Server AppFabric предоставляет распределенную платформу кеша приложений в памяти для разработки масштабируемых, доступных и высокопроизводительных приложений. AppFabric объединяет память на нескольких компьютерах, чтобы предоставить приложениям единое представление кэша. Приложения могут хранить любой сериализуемый объект CLR, не беспокоясь о том, где этот объект хранится. Масштабируемость может быть достигнута простым добавлением большего количества компьютеров по требованию. Кэш также позволяет хранить копии данных в кластере, защищая данные от сбоев. Он работает как сервис, доступ к которому осуществляется по сети. Кроме того, Windows Server AppFabric обеспечивает бесшовную интеграцию с ASP.NET, что позволяет сохранять объекты сеансов ASP.NET в распределенном кэше без необходимости записи в базы данных. Это повышает как производительность, так и масштабируемость приложений ASP.NET.

Другие вопросы по тегам