Кэширующие решения для конфигурации с несколькими веб-серверами?

Я ищу решения для кэширования для конфигурации с несколькими веб-серверами. Мы думали о memcached как о дешевом (бесплатном) и проверенном годами. Microsoft также разрабатывает решение для кэширования веб-ферм под названием Velocity, но это все еще в CTP2.


person Gideon    schedule 02.04.2009    source источник
comment
Для вашего первого ответа на стек используйте system.web.caching   -  person Elijah Glover    schedule 13.06.2009


Ответы (3)


В службе конфигурации используется модель распределенного кэширования, которая является частью .NET. Образец приложения Stocktrader. Это фреймворк, который позволяет запускать несколько узлов с централизованным управлением конфигурацией, балансировкой нагрузки и распределенным кэшированием. Вы можете реализовать сервис конфигурации как есть или просмотреть код и выбрать то, что вам подходит. Стоит посмотреть.

person Rob West    schedule 02.04.2009
comment
Я только что скачал пример приложения, посмотрю на него. - person Gideon; 02.04.2009

Когда я прослушал подкаст-интервью Скотта Хансельмана с командой StackOverflow, у меня осталось впечатление, что a. они использовали какое-то кэширование и б. они почти ничего не знали о том, что они делали в этом отношении, и повозились с несколькими вариантами, а затем написали один или два поста в блоге.

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

Однако подкаст был давно, и я в то время был за рулем, поэтому моя память может быть неправильной и/или устаревшей.

person Will Dean    schedule 02.04.2009
comment
Стандартное кэширование пользовательского режима не распространяется, не так ли? Поскольку у них два веб-сервера, значит, это не оптимальное решение. - person Gideon; 02.04.2009

Вы должны подумать, прежде чем использовать что-то вроде memcached.

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

Я не говорю, что не надо этого делать, но ТЯЖЕЛО подумайте, прежде чем делать.

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

* примечание Я не говорю 100 машин.

person mcintyre321    schedule 09.04.2009