我有许多Windows服务器。我想在每个服务器上运行同一个Windows服务(用.NET编写)的一个副本,以便在任何时候只有一个是“活动”而其他所有服务器都是被动的。如果活动的Windows服务死亡,那么很短的时间后,剩余的被动Windows服务中的一个,并且只有一个变为活动状态。
有任何简单的方法来实现这个目标吗?
答案 0 :(得分:2)
你需要让它们保持同步,最简单的方法是在数据库中的某个地方有一个他们可以访问的条目。让活动服务每隔很多分钟更新一个特定的行等。如果在特定时间内未找到更新,则其他服务可以采用该更新,因为活动的服务已脱机。当然,你的问题是,如果数据库脱机,那么服务就会出现问题,因此这可能是单点故障。您可以通过将db聚集在一起来缓解这种情况。
你可以让他们像对等网络一样彼此沟通,但这将是更多的工作,基本上相同的结果,虽然这种方法确实有它的好处。