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

StackOverflow https://stackoverflow.com/questions/103601

Вопрос

Мне любопытно, что другие используют в этой ситуации.Я знаю пару существующих опций, таких как порт memcached или ScaleOutSoftware.Порты memcached, похоже, активно не обрабатываются (поправьте меня, если я ошибаюсь).Масштабируемое программное обеспечение для меня слишком дорого (я не сомневаюсь, что оно того стоит).Это не значит, что я не хочу слышать о людях, использующих memcached или ScaleOutSoftware.Я просто констатирую то, что я "знаю" на данный момент.

Итак, мой вопрос в основном заключается в следующем:для тех из вас, кто АКТИВНО используя распределенное кэширование, что вы используете, довольны ли вы этим и на что мне следует обратить внимание?

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

Редактировать: Я скачал решение Scaleout Software.Я закодировал его, и, кажется, он работает очень хорошо.Мне просто нужно решить, расстанется ли мой кошелек с наличными за это.:) У кого-нибудь есть хороший или плохой опыт работы с ScaleOutSoftware?

Отредактируйте еще раз: Прошло немного времени с тех пор, как я спрашивал об этом в последний раз?Есть еще какие-нибудь мысли по этому поводу?В итоге мы купили решение у ScaleOutSoftware и остались им довольны, но мне любопытно, что делают другие.

Это было полезно?

Решение

В настоящее время мы используем невероятно простой кэш, который я написал за пару часов, основанный на повторном размещении ASP.NET кэша в службе Windows (более подробная информация и исходный код здесь).Я не буду притворяться, что он даже близко не так оптимизирован, как что-то вроде Memcached, но мы просто искали что-то простое и бесплатное, пока не появился Velocity, и он отлично держался даже при довольно большой нагрузке.

Это зависит от наших личных предпочтений в отношении основных компонентов , т.е.те, которые влияют на доступность сайта или нет, - они либо (а) поддерживаются поставщиком с историей быстрой и высококачественной поддержки, либо (б) написаны нами, чтобы, если что-то пойдет не так, мы могли быстро это исправить.Открытый исходный код - это хорошо, и мы действительно используем некоторые операционные системы, но если ваш сайт отключен, то, к сожалению, группы новостей et al у вас нет 1-часового SLA, и то, что это операционная система, не означает, что у вас есть необходимое понимание или способность исправить это самостоятельно.

Другие советы

У Microsoft есть готовящийся продукт с кодовым названием Скорость.Он все еще находится в ОСАГО и продвигается медленно, но, похоже, все будет довольно хорошо.Мы доработаем его в ближайшем будущем, чтобы посмотреть, как он справляется с тем, что мы от него хотим (> 2 миллионов операций чтения / записи в час).Опубликую ответ с результатами.

Существует 100% собственный .NET-проект с хорошо документированным открытым исходным кодом (LGPL) под названием Общий кэш.Похоже, что это еще не упомянуто в SO, но это многообещающе и должно быть способно делать то, что большинство людей ожидают от распределенного кэша.Он даже поддерживает различные стратегии, такие как распределенное или реплицируемое кэширование и т.д.

Я дополню этот пост более подробной информацией, как только у меня появится возможность опробовать его в реальном проекте.

Мы используем порт memcached для Windows, и мы им очень довольны. Клиентский API enyim.com memcached это здорово, и с ним легко работать.Это также открытый исходный код, что является большим преимуществом, если вы спросите меня.

Сейчас мы используем эту настройку в производственном веб-приложении, и это очень помогло повысить его производительность.

Это здорово .Найдена сетевая оболочка / порт здесь в Codeplex.Потрясающее пюре!

Мы используем memcached с библиотекой enyim в производственной среде (www.funda.nl).Работает нормально, мы очень довольны этим, но мы заметили существенное увеличение загрузки процессора клиентами.Предположительно, из-за происходящей сериализации / десериализации.Мы выполняем около 1000 операций чтения в секунду.

Одним из испытанных продуктов, которым пользуются 100 клиентов по всему миру, является NCache.Его

многофункциональный продукт, который позволяет вам сохранять состояние сеанса избыточным и высокодоступным способом, а также обмениваться данными

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top