我需要为以下场景设置故障转移机制。我有一个WCF窗口服务,它将有4个实例(位置“A”将有一个主(PA)和辅助(SA)和位置“B”将有两个实例主(PB)和辅助(SB))。 在任何给定时间,每个位置中的一个实例应该启动并运行(即活动)而另一个实例是非活动的。一次考虑一个位置,辅助(非活动)应该能够PING主要(活动)以获取健康信息。如果没有发现它是“健康的”,则辅助(非活动)应该自行激活。
如果主要和次要被认为是在两台不同的机器/同一台机器上,解决方案有多么不同?
我很感激您就如何实现相同行为提出专家意见。
问候!
答案 0 :(得分:2)
我认为你应该重新考虑你的故障转移策略。
配置服务以在主动 - 被动故障转移/负载平衡配置中运行存在许多问题
我实施了两种主动 - 主动服务配置模式:过滤器或完全冗余。
在过滤器配置中,消息/请求将通过网络负载平衡器传入其中一个可用服务。
在完全冗余配置(我更喜欢的配置)中,消息/请求同时广播到所有可用服务。这意味着您将多个相同的呼叫副本发送到每个服务,并且它们会同时处理。
这两种故障转移配置都会给您带来好处,但我认为完全冗余配置更好,因为您不需要负载均衡器。