Наше веб-приложение использует кэширование в памяти (кэширование данных приложения) для повышения пропускной способности, так что часто запрашиваемые данные не нужно загружать из базы данных (SQL Server) для каждого запроса. Потенциально он будет развернут в веб-ферме, поэтому нам нужно решить классическую проблему синхронизации кешей всех узлов. Итак, нам нужен распределенный кеш.
Легко доступные решения - NCache и REDIS (и, возможно, другие). Однако, поскольку мы уже используем SignalR Backplane для передачи изменений в нашем наборе данных службе Windows (и клиентам браузера), мне интересно, можно ли ее использовать для реализации распределенного кеша.
Поступая таким образом, мы (более или менее) повторно использовали бы наши существующие сообщения об изменении набора данных, но подписались бы на них в самом веб-приложении, чтобы сделать его кеш недействительным. Плюс в том, что нам не нужно вводить новую библиотеку / технологию.
Думаю, мои самые большие вопросы: есть ли в этом смысл? И достаточно ли надежной объединительной платы SignalR, чтобы гарантировать, что никакие события не будут потеряны, что приведет к устареванию кешей? Или это архитектурное злоупотребление?