【问题标题】:IIS Zero Downtime Update ARR / Reverse ProxyIIS 零停机更新 ARR / 反向代理
【发布时间】:2015-09-04 12:09:21
【问题描述】:

我有一个 C# 控制台应用程序/Windows 服务,它使用 HttpListener 东西来处理请求,IIS 设置为通过 ARR 反向代理。

我的问题是,当我更新此应用程序时,在关闭旧实例和准备好新实例之间有很短的停机时间。

我正在考虑的方法是通过具有 2 个端口的本地主机名将 2 个服务器添加到服务器场,并在更新时启动新实例,该实例将侦听未使用的端口,停止侦听新请求旧实例并优雅地关闭它(即处理当前请求)。最后两个步骤将由新实例启动,以确保它已准备好处理请求。

IIS ARR 负载平衡是否足够聪明,可以尝试另一个实例并将现在关闭的实例标记为不可用,而不会丢失任何请求,直到更新新实例或者我是否必须添加运行状况检查等(这会再次导致停机时间短?)

【问题讨论】:

    标签: iis arr


    【解决方案1】:

    我认为可行的一个想法(特别是如果您的 IIS 仅用于此目的)是在您进行配置更改时利用内置的 IIS 重叠回收功能。在这种情况下,您可以做的是:

    1. 启动您的应用程序的新实例,在不同的环境中运行监听 港口,
    2. 编辑 ARR 中的配置以指向新端口。

    IIS 应允许在回收超时内在应用程序池中运行的任何现有请求成功耗尽,同时将新请求发送到新的应用程序池。

    如果您分享更多关于您在 ARR 中使用的配置的信息(例如 %windir%\system32\inetsrv\config\applicationHost.config 和 webFarms 部分的 sn-p)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-08
      • 2012-06-28
      • 2021-02-23
      • 2022-12-29
      • 2013-01-28
      • 1970-01-01
      • 1970-01-01
      • 2012-10-12
      相关资源
      最近更新 更多