Как аннулировать OutputCache в веб-ферме? - PullRequest
3 голосов
/ 03 мая 2010

У меня есть веб-сайт, который использует атрибут OutputCache для кэширования страниц. Прекрасно работает.

Сейчас я нахожусь в процессе НИОКР по расширению этого сайта до веб-фермы . Наряду с обычными подозрениями на боль веб-фермы ... Я заметил (довольно быстро / очевидно), что OutputCache от Server_A не делает недействительной OutputCache от Server_B .. если попытаться сделать недействительной OutputCache одного сервера. Это имеет смысл -> как S_A может «сказать» S_B, что нужно сделать недействительными, когда они физически 2 отдельных компьютера и т. Д.?

Итак, какие у нас варианты?

Скорость ? Я понимаю, что это переместит кеширование на другой уровень ... что означает, что конечный результат (вывод) всегда будет требоваться для определения ... в отличие от OutputCache, который запоминает конечный выводной контент (да, varby дает разные версии, и т.д .. что вполне нормально). Таким образом, даже несмотря на то, что все poco или бизнес-объекты синхронизированы, все равно требуется последнее усилие рендеринга (даже если оно крошечное ... по сравнению с усилиями по генерации / синхронизации бизнес-объектов).

Так что да ... не уверены, какие варианты здесь, и что делают другие?

Ответы [ 2 ]

2 голосов
/ 03 мая 2010

Как вы сказали выше, кэширование вывода ASP.NET из коробки работает для каждого сервера отдельно.Однако в ASP.NET 4.0 вся инфраструктура кэширования является подключаемой.ScottGu имеет blogpost , который использует это для кэширования вывода.Я написал некоторый демонстрационный код, который использует Velocity / AppFabric в качестве механизма кэширования, который должен делать то, что вы хотите - посмотрите мой блог здесь .

0 голосов
/ 03 мая 2010

Взгляните на memcached

Что такое Memcached?
Бесплатный и открытый исходный код, высокопроизводительный, система кеширования распределенной памяти, общая по своей природе, но предназначен для ускорения динамических веб-приложений облегчение загрузки базы данных.

Из Википедия

Система используется несколькими очень большими, хорошо известными сайтами, включая YouTube [2], Живой журнал, Википедия / Викимедиа, Amazon.com, Викия, SourceForge, Metacafe, Facebook [3] [4], Twitter [5], Fotolog, The Пиратская бухта [6] и Netlog. [7]

Клиент .NET здесь

К сожалению, это не очень хорошо работает с окнами. Его можно установить, но лучшая интеграция - с Linux.

...