【问题标题】:Implement IIS Load Balancing across Sites or Applications -- not Servers跨站点或应用程序实现 IIS 负载平衡 - 而不是服务器
【发布时间】:2016-05-01 05:37:38
【问题描述】:

我有一个通过 SOAP 接口返回数据的 IIS 应用程序。所有调用都是原子的。由于与后端通信的问题,此 IIS 应用程序不是线程安全的。一次发出多个呼叫会导致不稳定。 IIS 应用程序稳定运行多个实例(我已经测试了 100 个应用程序)在不同的应用程序池中。我已经配置了这个 IIS 应用程序的多个实例,然后使用负载平衡策略(在客户端内)调用服务。每次只有一个呼叫通过每个服务。我有这样的网址:

app1-100 是在不同池下运行的相同副本。

我想配置一个主 url 为:

我将如何进行配置?有可能吗?

【问题讨论】:

    标签: iis arr


    【解决方案1】:

    您可以尝试在 IIS 中设置Web Garden,这将为同一站点创建多个工作进程。需要牢记的问题是,如果您的应用保持会话状态,如果不将其存储在共享持久性存储(例如 Redis)中,它将不会跨进程持久化。

    要设置网络花园,请编辑网站应用程序池的属性并将最大工作进程设置为大于 1 的数字。

    IIS 将在工作进程之间循环请求。

    更新

    上述内容实际上并没有一次强制执行一个请求。要强制执行并发请求限制,您需要调整网站的高级设置。 * 右键单击​​网站节点 * 管理网站 * 高级设置 * 更改最大并发连接数

    如果您将此设置为 1,那么无论您运行了多少个应用程序池,它一次只会处理一个。您可以尝试将其设置为 2 并拥有 2 个工作进程,因为 IIS 应该将第二个发送到第二个进程,但不能保证每个应用程序池都进行序列化。要一次只有一个,请将 Max Worker Processes 设置为 1,将 Max Concurrent Connections 设置为 1

    【讨论】:

    • 我遇到的问题是,我只能在单独的池中稳定运行。如何设置带有独立池的网络花园?
    • 正是我所描述的。根据定义,网络花园是独立的池。设置为 2 将导致 2 个 w3wp.exe 进程为您的站点提供请求。
    • 我确实尝试了您的建议,并创建了多个 w3wp.exe,但我最终遇到了与开始时相同的问题。我注意到 w3wp 实例的数量很少,少于通过服务器的调用数量。我似乎一次只能使用一个电话/应用程序/池。
    • 好的,所以这肯定一次只能处理 1 个,你看到并发处理了吗?
    • 不,我收到一个错误,表明无法处理其他请求。
    猜你喜欢
    • 2011-11-18
    • 1970-01-01
    • 1970-01-01
    • 2010-10-23
    • 2017-06-08
    • 1970-01-01
    • 1970-01-01
    • 2019-07-17
    • 2022-01-05
    相关资源
    最近更新 更多