Signalr 是否可以/应该使用信号器背板构建分布式缓存?

Signalr 是否可以/应该使用信号器背板构建分布式缓存?,signalr,distributed-caching,web-farm,signalr-backplane,ncache,Signalr,Distributed Caching,Web Farm,Signalr Backplane,Ncache,我们的web应用程序使用内存缓存(应用程序数据缓存)来提高吞吐量,这样就不必为每个请求从数据库(SQL Server)加载频繁查询的数据。它可能会部署在web场中,因此我们必须解决必须同步所有节点缓存的经典问题。所以我们需要的是一个分布式缓存 现成的解决方案有NCache和REDIS(可能还有更多)。然而,由于我们已经使用SignalR背板将数据集的更改传达给Windows服务(和浏览器客户端),我想知道它是否可以用于实现分布式缓存 这样做,我们将(或多或少)重复使用现有数据集已更改的消息,但在

我们的web应用程序使用内存缓存(应用程序数据缓存)来提高吞吐量,这样就不必为每个请求从数据库(SQL Server)加载频繁查询的数据。它可能会部署在web场中,因此我们必须解决必须同步所有节点缓存的经典问题。所以我们需要的是一个分布式缓存

现成的解决方案有NCache和REDIS(可能还有更多)。然而,由于我们已经使用SignalR背板将数据集的更改传达给Windows服务(和浏览器客户端),我想知道它是否可以用于实现分布式缓存

这样做,我们将(或多或少)重复使用现有数据集已更改的消息,但在web应用程序本身中订阅这些消息以使其缓存无效。好处是我们不必引入新的库/技术


我想我最大的问题是:这有意义吗?而且,信号器背板是否足够可靠,以确保不会丢失导致过时缓存的事件?或者这是架构误用?

信号器用于实时解决方案,而不是静态解决方案

在您的解决方案中,您将选择一个服务上的数据,并通过背板将其发送到另一个服务。然后呢?可能您会将其保存到内存中。如果其中一个服务已重新启动,会发生什么情况?数据将会消失。使用redis,您永远不会遇到这个问题。此外,您将为此数据消耗本地内存

您将如何管理到期?此外,您还将努力使用signalr实现此缓存系统


我不建议您为此使用信号机背板。坚持使用Redis或smilar技术。

我不会将数据从一个服务发送到另一个服务。我只想利用一个已经发送数据的系统,它已经改变了事件。只有一个订户:web应用程序本身,这样它就知道何时刷新缓存。我不知道你为什么说它需要另一种技术来传播信息?信号机就是这么做的。你是说信号机是背板还是背板?。向客户端发送消息的信号器或向服务器发送消息的客户端。所以,在一台服务器中,您可以向客户端发送消息,但如果您想获得其他服务器客户端,则此消息信号器需要背板。我想说这个。但是,如果您将信号机作为背板来讨论,这与您的问题无关。我所讨论的是信号机背板,如下所述:。据我所知,它可以帮助我在不同的进程(IIS或Windows服务)之间传播消息。是的,它可以在服务器(信号服务器)之间分离消息。无论如何,如果答案不清楚,我会删除额外的信息。我在这里问了一个相关且更具体的问题: