我有一个托管在两个负载平衡服务器中的站点。我有一组变量,它们作为查找存储在静态变量中,以执行频繁和快速的查询。静态变量中的值是树形结构的数据,不想每次都查询到DB,绑定列表变量之间的关系。静态变量结构如下所示。
public static ILookup<long, ITree> MyStaticVar;
public interface ITree
{
long ID { get; set; }
// Some other properties
ITree Parent { get; set; }
IEnumerable<ITree> Children { get; set; }
}
有时静态变量的内容可能会更新(当管理员修改一些值时),所以我用更新的值更新静态变量,以便用户可以立即获得更改。
它在单个服务器上运行良好,但是当我将其发布到两台或多台服务器时,除了登录的一个管理员之外的其他服务器不会更新变量(因为该应用程序服务器中的静态变量只会更新)。
保持我的静态变量在多个服务器中同步的最佳方法是什么?或者是否有任何其他方式来管理我的情况(事件驱动或其他方式来触发/通知其他服务器并刷新其中的变量)?
我有一个会话状态服务器,它管理这些负载平衡服务器之间的会话值。有没有办法将 ILookup 变量的单个实例存储在会话状态服务器中并在所有用户之间共享?