AppFabric冗余

时间:2011-01-20 12:39:53

标签: caching appfabric

我们刚刚测试了2台服务器的AppFabric集群,我们删除了“主导”服务器。第二个服务器对任何请求超时,并显示错误:

  

Microsoft.ApplicationServer.Caching.DataCacheException:ErrorCode< ERRCA0017&gt ;:SubStatus< ES0006>:   暂时失败了。请稍后重试。   (一个或多个指定的缓存服务器不可用,这可能是由繁忙的网络或服务器引起的。确保已为群集上的此客户端帐户授予安全权限,并允许AppFabric缓存服务通过所有缓存主机上的防火墙。稍后重试。)

在practive中,这意味着如果群集中的一台服务器出现故障,那么它们都会关闭。 (注意,我们不使用Windows群集,只将多个AppFabric缓存服务器相互链接。)

即使单个服务器出现故障,我也需要群集继续运行。我该怎么做?

(我意识到这个问题是临界服务器故障,但imho开发人员应该知道这一点。)

3 个答案:

答案 0 :(得分:7)

您必须在至少三个主要服务器上安装AppFabric缓存才能使缓存在单个服务器崩溃时继续存在。文档指出,如果主要服务器的“大多数”发生故障,集群只会停机,但在细则中,他们解释说,2中有1个占多数。我已经确认从三个主导节点集群中删除服务器的工作方式与宣传的一样。

答案 1 :(得分:2)

典型的分布式系统概念。要在集合中发生写入或读取仲裁,您需要有2f + 1个服务器,其中f是服务器失败的数量。我认为appfabric或任何CP(如在CAP定理中)基于共识的系统都需要在群集的工作中发生这种情况。

- 西

答案 2 :(得分:0)

这实际上是Appfabric架构的问题,而且在“主机 - 主机”概念方面相当混乱。我们的想法是,大多数主机应该运行,以便群集保持正常运行。因此,如果你有三台服务器,你必须至少有两个主机主机不断相互通信并占用服务器资源,如果两者都停机,那么整个集群都会失败。我们的想法是拥有一个点对点架构,其中所有服务器都充当对等体,这意味着即使两个服务器停止运行,集群仍然可以正常运行而无需停止应用程序。尝试NCache:

http://www.alachisoft.com/ncache/