ASP.Net Web应用程序中主Web服务器和副Web服务器之间的故障转移

3
我有一个asp.net Web应用程序,托管在两个不同的服务器上,一个是主服务器,另一个是备用服务器。
使用DNSMadeEasy,我设置了DNS故障转移,当主服务器出现故障时,备用服务器接管。
这个设置根据要求正常工作,但还有一个问题。
我的应用程序使用Windows服务进行计费。
计费服务始终在主服务器上运行,并且在备用服务器上始终停止。
我希望当DNS故障转移发生时,它会自动在备用服务器上启动计费服务,并且当DNS切换回主服务器时,在备用服务器上停止计费服务。
我需要做什么来实现这个目标?
1个回答

1
稍微改变一下你的架构会有所帮助(只要你能做出这些更改):
  1. 在两个Web服务器前面放一个负载均衡器(HAProxy、NGINX等)。
  2. 两个 Web 服务器上运行ASP.NET应用程序和计费服务。
  3. 重新设计计费服务,使其可以同时从两个服务中运行,而不会产生干扰。

你已经在运行备用服务器,所以你将获得很多好处:

  • 更好的可扩展性:负载在Web服务器/计费服务之间共享。
  • 零停机更新:从负载均衡器中逐个删除每个Web服务器,进行更新,然后添加回旋转中。
  • 健壮性:如果一个Web服务器失败,你自动拥有一个不必担心DNS TTL问题并且会自动故障切换的架构。

如果你不能真正改变你的架构,这里有一个想法:

监听第一个Web请求到辅助Web服务器,然后在发生时启动服务。根据它的设计方式,你可能需要停止主服务器上的计费服务。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接