我在我的 ASP.NET 应用程序中使用SignalR。我的应用程序需要的是压缩从各种服务器更新的组数据。根据 SignalR 文档,我有责任这样做。这意味着我需要使用一个外部服务器/服务来从一个或多个服务器收集数据,并且我可以从一个地方查询这些数据。
我首先认为MemCached是最好的选择,因为它速度很快,而且我需要放在那里的数据是不稳定的。问题是我需要存储集合,例如:具有用户 ID 的集合 A,因此我可以拥有具有 2000 个用户 ID 的集合 A 和具有 40,000 个 ID 的集合 B。问题是我需要更新这个集合并非常快速地删除和插入 id。我担心因为命令将从多个服务器启动,而且我可能需要读取整个集合并在任一 Web 服务器上更新它,因此数据将不一致。Web 服务器 A 可能会更新数据,但服务器 B 会在服务器 A 完成更新之前读取数据。存在并发冲突。
我正在寻找在我的 ASP.NET 4.5 应用程序中实现这种策略的最佳方法。我认为这可能是使用内存数据库或确保没有数据完整性的一种选择。
我想问你什么是我的问题的最佳解决方案。
这是我的问题的一个例子:
MemCached Server - 存储集合(例如集合 A、B、C、D),每个集合存储用户 ID,可能是数千个 ID,甚至更多。
Web 服务器 - 我安装了 SignalR 的 Amazon EC2 Web 服务器。可以在负载均衡器后面。这些服务器需要访问 memcached 服务器并通过 Collection 名称(例如“Collection_23”)获取完整的集合项。他们需要能够删除项目(用户 ID)并添加项目。这一切都应该尽可能快。
我希望我对自己的解释是正确的。谢谢。