Как работать с BL-кешем для нескольких веб-приложений? - PullRequest
4 голосов
/ 25 марта 2010

Недавно я получил проект, который содержит несколько веб-приложений без структуры MVC. Для начала я создал библиотеку (DLL), которая будет содержать основную бизнес-логику. Проблема заключается в кешировании. Если я использую текущий объект кеширования веб-контекста, я могу получить дублирующееся кеширование (поскольку веб-контекст будет отличаться для каждого приложения).

В настоящее время я думаю о реализации простого механизма кэширования с одноэлементным шаблоном, который позволит различным веб-сайтам (или различным доменам приложений) делиться своей «мудростью кэширования».

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

РЕДАКТИРОВАТЬ: Я использую только один сервер (с несколькими приложениями).

Ответы [ 4 ]

1 голос
/ 03 апреля 2010

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

Если вы хотите уменьшить масштаб, добавив веб-ферму (более одного сервера приложений), посмотрите на скорость. Microsoft будет упаковывать его в 4.0, но в настоящее время это CPT3, и его очень легко использовать.

Документация

Скачать

Если вы не планируете переходить на систему с несколькими серверами, просто используйте HttpContext.Current.Cache

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

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

  1. Для небольших объемов примитивных данных: nCacheD (codeplex) - memcached redux для .net
  2. Для тяжеловесных объектов: Блок кэширования MS Patterns and Practices (msdn)

В общем, я бы посмотрел на свои требования и убедился, что действительно необходим всеобъемлющий кеш, а написание кода для поддержания его состояния (и настройки потребления ресурсов) не будет стоить дороже, чем переход прямо к база данных. Если большая часть содержимого, которое вы хотите кэшировать, это статические страницы или комбинация статического и динамического содержимого, я хотел бы изучить использование кэша на уровне страниц IIS / ASP.NET.

0 голосов
/ 28 марта 2010

Мне также предложили использовать SharedCache , который выглядит точно так же, как и архитектура, которую я ищу: Кэширование в одном экземпляре .

0 голосов
/ 25 марта 2010

Звучит так, будто вы должны взглянуть на Создание улучшенных управляемых данными приложений с распределенным кэшированием . В статье описывается новый распределенный кеш от Microsoft (под кодовым названием Velocity).

...