我有许多Windows服务器。我想在每个服务器上运行同一个Windows Service (用.NET编写)的一个副本,这样在任何时候,它们中只有一个是“主动”的,所有其他的都是被动的。如果活动窗口服务终止,则在非常短的时间之后,剩余的被动窗口服务中的一个,并且只有一个变为活动的。
有什么简单的方法可以做到这一点吗?
发布于 2010-07-01 01:00:20
你需要让它们保持同步,最简单的方法是在数据库中的某个地方有一个条目,它们都可以访问。让活动服务每隔几分钟更新一次特定的行等。如果在特定的时间内没有找到更新,其他服务可以认为活动的服务已经离线。当然,这里的问题是,如果数据库脱机,那么服务将出现问题,因此这可能是一个单点故障。不过,您也可以通过对数据库进行集群来缓解这一问题。
你也可以让它们像点对点网络一样相互通信,但这将是更多的工作,因为本质上是相同的结果,尽管这种方法确实有它的好处。
https://stackoverflow.com/questions/3151523
复制相似问题