我们的 Web 应用程序使用内存缓存(应用程序数据缓存)来提高吞吐量,这样就不必为每个请求从数据库(SQL Server)加载频繁查询的数据。潜在地,它将部署在网络农场中,因此我们必须解决必须同步所有节点的缓存的经典问题。所以我们需要的是分布式缓存。
现成的解决方案是 NCache 和 REDIS(可能还有更多)。但是,由于我们已经在使用 SignalR Backplane 将数据集的更改传达给 Windows 服务(和浏览器客户端),我想知道它是否可以用于实现分布式缓存。
这样做,我们将(或多或少)重用我们现有的数据集已更改消息,但在 Web 应用程序本身中订阅它们以使其缓存无效。好处是我们不必引入新的库/技术。
我想我最大的问题是:这有意义吗?而且,SignalR 背板是否足够可靠以确保不会丢失任何事件导致缓存过时?还是这种架构滥用?