Как аннулировать OutputCache в веб-ферме?

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

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

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

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

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


person Pure.Krome    schedule 03.05.2010    source источник


Ответы (2)


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

person PhilPursglove    schedule 03.05.2010

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

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

Из Википедии

Система используется несколькими очень крупными и известными сайтами, включая YouTube[2], LiveJournal, Wikipedia/Wikimedia, Amazon.com, Wikia, SourceForge, Metacafe, Facebook[3][4], Twitter[5], Fotolog, The Pirate Bay[6] и Netlog.[7]

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

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

person Claudio Redi    schedule 03.05.2010
comment
MemcacheD похож на Velocity. Я знаю, потому что некоторое время назад я участвовал в переносе его на .NET x64. Так что, к сожалению, это не то, что я ищу прямо сейчас ... но если это то, что люди используют ... тогда у меня есть ответ. - person Pure.Krome; 03.05.2010
comment
Учтите, что Velocity — это что-то очень новое. Не так уж часто продукт Microsoft достаточно хорош с версии 1.0 :-) - person Claudio Redi; 03.05.2010
comment
Верно - и я не говорю, что хочу использовать Velocity и т. д. - person Pure.Krome; 03.05.2010