【发布时间】:2015-09-04 12:09:21
【问题描述】:
我有一个 C# 控制台应用程序/Windows 服务,它使用 HttpListener 东西来处理请求,IIS 设置为通过 ARR 反向代理。
我的问题是,当我更新此应用程序时,在关闭旧实例和准备好新实例之间有很短的停机时间。
我正在考虑的方法是通过具有 2 个端口的本地主机名将 2 个服务器添加到服务器场,并在更新时启动新实例,该实例将侦听未使用的端口,停止侦听新请求旧实例并优雅地关闭它(即处理当前请求)。最后两个步骤将由新实例启动,以确保它已准备好处理请求。
IIS ARR 负载平衡是否足够聪明,可以尝试另一个实例并将现在关闭的实例标记为不可用,而不会丢失任何请求,直到更新新实例或者我是否必须添加运行状况检查等(这会再次导致停机时间短?)
【问题讨论】: