1

我有许多 Windows 服务器。我想在每台服务器上运行相同 Windows 服务(用 .NET 编写)的一份副本,以便在任何时候只有其中一个是“主动”的,而其他所有服务器都是被动的。如果活动的 Windows 服务死了,那么在很短的时间之后,剩余的被动 Windows 服务中的一个,并且只有一个变为活动的。

有什么简单的方法可以实现这一目标吗?

4

1 回答 1

2

好吧,您需要使它们保持同步,最简单的方法是在数据库中的某个地方有一个他们都可以访问的条目。让活动服务每隔几分钟更新一个特定的行等。如果在特定时间内未找到更新,则其他服务可以将其视为活动服务已离线。当然,这里的问题是,如果数据库离线,那么服务就会出现问题,因此这可能是单点故障。不过,您也可以通过将数据库集群化来缓解这种情况。

您也可以让它们都像点对点网络一样相互通信,但这将是更多的工作,基本上相同的结果,尽管这种方法确实有它的好处。

于 2010-06-30T17:00:19.577 回答