我在负载平衡的 Web 服务器环境中使用 ASP.NET 和 WCF 服务,在服务层使用 Memcached。
我还想用 Memcached 替换使用 ASP.NET 状态服务器(用于会话状态)。现在恐怕这不是一件好事,因为据我了解,Memcached 是缓存服务器而不是状态服务器,这是真的吗?
如果我理解正确,Memcached 不会将数据分发到 Memcached 场中的其他节点。相反,使用一种特殊的散列算法来确定场中的哪个节点包含请求的密钥的数据,而 ASP.NET 状态服务器在添加数据后尽快分发数据,以防止单点故障。
换句话说,Memcached 应该仅用于性能原因,存储在其中的数据应该始终是可重新创建的,以防项目已被删除为新对象腾出空间,或者在实际存储数据的单台机器发生故障的情况下向下。
那么我不能仅仅依靠 Memcached 来存储会话状态数据吗?如果我不能,那么我不明白 Memcached 是如何经常被比较并被视为使用 ScaleOut StateServer 和 ASP.NET 状态服务器的替代方案,因为它们实际上是状态服务器,这是另一回事,对吗?
我现在有点不确定在 Web 服务器场中实现高性能分布式会话状态的最佳方法是什么。
谢谢