WCF Windows服务故障转移机制(两个WCF Windows服务之间的通信)



我需要为以下方案设置故障转移机制。我有一个WCF Windows服务,该服务将有4个实例(位置" A"将具有主要(PA)和次级(SA),并且位置" B"将有两个实例(PB)和次级(SB))。在任何给定时间,每个位置中的一个实例都应启动并运行(即活动),而另一个位置则不活动。一次考虑一个位置,次级(非活动)应该能够在主要(活动中)以获取健康信息。如果没有发现它是"健康的",那么次级(非活动)应自我激活。

如果将主要和次要在两台不同的机器/同一机器本身上,解决方案会有什么不同?

我将感谢您对如何实现相同行为的专家意见。

问候!

我认为您应该重新考虑自己的故障转移策略。

配置服务以在Active-Passive故障转移/负载平衡配置

中运行的问题有很多问题
  1. 需要复杂的管理 - 服务需要相互意识到,这会产生复杂性和耦合。
  2. 您可以删除消息/请求 - 例如,服务A跌落在处理消息上,那么该消息将不会由服务B处理,除非服务B有某种方法可以知道该消息没有处理。

我已经实现了两种主动服务配置模式:滤波器中的过滤器完全冗余。。

在过滤器中的配置中,消息/请求将通过网络加载平衡器进入可用的一项服务。

在完全冗余的配置(我喜欢的配置)中,消息/请求同时广播到所有可用的服务。这意味着您将通话的多个相同的副本发送给每个服务,并且它们会同时处理。

这两种故障转移配置都将为您带来好处,但是我认为完全冗余的配置更好,因为您不需要负载平衡器。

最新更新