更新以反映 John Mahowald 的意见
在对该主题进行了大量研究并探索了我们系统的其他选项之后,由于 Mahowald 给出的原因以及以下原因,集群集群并不是一个好主意:
- 我们的系统使用自定义数据库(不是 SQL),它可以轻松分区以适应服务器对以实现冗余。
- 客户端负载平衡可用于在每对服务器之间分配负载。
- 我们系统中唯一真正需要 IIS NLB 集群的部分是专用的 Web 应用程序服务器。
- 这对数据服务器的主动-主动方法(由 Mahowald 建议)适用于我们的系统。并行运行的两台服务器在两者都启动时提供更低的延迟/更好的性能,并在一对中的一个服务器出现故障时提供冗余。
我们希望有一个由两台 IIS 服务器组成的集群,作为一个由 10 个这样的构建块组成的更大集群的构建块(换句话说,一个使用 20 个服务器的集群集群)。
每台服务器都有一个唯一的 IP 地址和一个共享 IP 地址用于其集群。这些服务器模块中的每一个(集群中的两台服务器)都负责自己的数据并用作 Web 应用程序的下载源。
必须使用使用 ASP.NET 自动启动功能创建的唤醒计时器来配置叶节点服务器对并同步数据。此同步是通过第二个 NIC 完成的,该 NIC 仅用于 Intranet 通信。JavaScript 客户端必须能够访问这些服务器对之一,才能将数据读/写到两个服务器集群。它将同步任何更改的数据。我们的系统已经考虑了服务器之间更新的延迟。没有数据在服务器对之间同步。
编辑以添加更多详细信息 目的是拥有一个服务器对(叶节点集群),在两个服务器都可用时提供冗余(为其独特的数据集)并增加吞吐量。如果发生故障,一台服务器将以降低的容量承载负载,直到另一台服务器得到修复。
顶级集群将处理正常的应用程序下载功能,其中包括故障转移冗余。它将使用较低级别的集群 IP 地址为 10 个集群对提供 NLB。顶级集群将有效地管理 10 个唯一 IP 节点,其中每个 IP 节点将是一个叶节点集群。
在网络上进行一些搜索后,我无法确定 Windows 2012 IIS 是否能够处理这种情况。我读过的信息似乎并不排除这种情况。
是否支持这种类型的配置?资源链接将不胜感激。
问候…
通常所说的集群意味着主动-被动故障转移集群,使用一些技术来实现高可用性和节点之间的协调。处理双节点集群、将它们扩展到多个节点或进行主动-主动可能很困难。
在许多情况下,主动-主动系统位于负载平衡器之后。
任何软件或硬件负载平衡器。一些商业或开源(haproxy)产品可以在您想要的任何后端集之前处理多个服务地址。
但是,不一定是 Windows 网络负载均衡器,它具有网络性能考虑,没有那么多功能,并且可能无法扩展。