Asp.net 如何使群集中运行的.NET应用程序相互通信?

Asp.net 如何使群集中运行的.NET应用程序相互通信?,asp.net,.net,iis,cluster-computing,arr,Asp.net,.net,Iis,Cluster Computing,Arr,我有一个在ARR群集(IIS)中运行的.NET web应用程序,该群集有多台计算机 每台计算机都必须在内存中保留一个缓存,以获得用户访问权限。也就是说,当应用程序必须确定用户是否具有访问资源的权限时,它会查询内存缓存以避免访问数据库(每个用户请求都有很多查询) 问题是,在某些情况下,此缓存必须无效。但是,由于存在多台机器,当一台机器决定缓存必须失效时,它必须传播到其他机器 解决此问题的最佳做法是什么?我们有一个ASP.NET MVC 3应用程序在IIS ARR群集上运行。是正常的解决方案 您可以

我有一个在ARR群集(IIS)中运行的.NET web应用程序,该群集有多台计算机

每台计算机都必须在内存中保留一个缓存,以获得用户访问权限。也就是说,当应用程序必须确定用户是否具有访问资源的权限时,它会查询内存缓存以避免访问数据库(每个用户请求都有很多查询)

问题是,在某些情况下,此缓存必须无效。但是,由于存在多台机器,当一台机器决定缓存必须失效时,它必须传播到其他机器

解决此问题的最佳做法是什么?我们有一个ASP.NET MVC 3应用程序在IIS ARR群集上运行。

是正常的解决方案

您可以拥有一个由所有节点订阅的队列,当您需要使缓存无效时,您可以向该队列发送一条消息——其他节点看到该消息并使其队列无效


是Microsoft消息队列,但有许多第三方消息队列。您可能需要另作选择。

使所有与权限相关的缓存无效,或仅使缓存的相关部分无效(例如特定用户、特定角色等?)


无论如何,我在想一些发布/订阅模式,比如应用程序订阅的服务器(sub),应用程序可以通过向所有订阅者发布请求(pub)来请求缓存失效(pub)

您考虑过状态服务器(可用于IIS)吗?有没有更好的术语来形容“ARR”?应用程序请求路由,对吗?作为首字母缩略词标记,它将受到许多人在键入“array”时懒惰的影响。