Расширение кэша данных ASP.NET для совместного использования через веб-ферму
-
10-07-2019 - |
Вопрос
У меня есть приложение ASP.NET, которое широко использует API-интерфейс кэширования ASP.NET для кэширования часто используемых данных. Кроме того, я использую основанную на опросе зависимость кэша sql для отслеживания срока действия.
Недостаток текущего проекта заключается в том, что в среде веб-фермы каждый веб-сервер имеет свой собственный кэш данных, который не распределяется между серверами.
Можно ли просто перенести код для совместного использования кэша данных на нескольких серверах?
Я думал об использовании memcached, однако, это не будет работать с зависимостью кеша sql, верно?
Есть ли другие решения?
Решение
Вы смотрели на Windows Server AppFabric (ранее Velocity).
Другие советы
Вы можете использовать следующие параметры -
<Ол>Используйте описанный здесь подход для синхронизации данных между веб-фермами - http://www.eggheadcafe.com/articles/20030420.asp
Используйте подход распределенного кэширования
Использовать кэш корпоративной библиотеки. Р>
Мне кажется, что Windows Server AppFabric - это именно то, что вы ищем. (AKA "Velocity"). Из вводной документации :
Windows Server AppFabric предоставляет распределенное приложение в памяти кеш-платформа для разработки масштабируемый, доступный и высокопроизводительные приложения. AppFabric объединяет память в нескольких компьютеры, чтобы дать единый кеш просмотра приложений. Приложения могут хранить любые сериализуемый объект CLR без беспокоиться о том, куда попадает объект сохраняются. Масштабируемость может быть достигнута просто добавив больше компьютеров на потребность. Кэш также позволяет копии данных, которые будут храниться через кластер, таким образом, защита данных от неудачи. Это работает как услуга доступ по сети. В Кроме того, Windows Server AppFabric обеспечивает бесшовную интеграцию с ASP.NET, который включает сессию ASP.NET объекты для хранения в распределенный кеш без необходимости писать в базы данных. Это увеличивает производительность и масштабируемость приложений ASP.NET.