我们正在计划设置 Biztalk 2009,其中有 2 个 Biztalk 应用程序服务器和 2 个数据库服务器(数据库服务器位于主动/被动群集中)。所有服务器都运行 Windows Server 2008 R2。
作为我们应用程序的一部分,我们将通过 MSMQ、FILE 和 SOAP 适配器接收传入流量。我们还需要高可用性和负载平衡。
假设我创建了两个不同的 Biztalk 主机,并将 FILE 接收处理程序分配给第一个主机,将 MSMQ 接收处理程序分配给第二个主机。我现在为两个主机中的每一个创建两个主机实例(即为我的两个物理服务器中的每一个创建一个实例)。
在查看了 Biztalk 文档后,这是我目前所知道的:
对于 FILE(接收),Biztalk 将自动实现高可用性和负载平衡,因为我在组中的两台服务器上分别设置了一个主机实例。
MSMQ(接收)需要 Biztalk 主机群集来确保高可用性(但主机群集还需要设置 Windows 故障转移群集)。这里没有明确的负载平衡选项。
SOAP(接收)需要 NLB 来实现负载平衡和高可用性(如果一台服务器出现故障,NLB 会将流量引导到另一台服务器)。
这就是我完全困惑的地方,我迫切需要你的帮助:
- 是否可以在两台应用程序服务器上同时设置 Windows 故障转移群集和 NLB?
- 如果是,请告诉我如何做。
- 如果不是,请向我解释一下,当 MSMQ 和 SOAP 的基本先决条件相互排斥时,他们是如何实现 MSMQ 和 SOAP 的高可用性和负载平衡的!
非常感谢您的帮助,
中号
最佳答案
Microsoft 不支持在同一服务器上运行 NLB 和 MSCS
“这两个组件在运行于不同计算机上的两层或三层应用程序模型中可以很好地协同工作。请注意,由于群集之间潜在的硬件共享冲突,Microsoft 不支持并且不建议在同一台计算机上运行这两个组件服务和网络负载平衡。” http://support.microsoft.com/kb/235305
如果要为 BizTalk 中收到的 SOAP 请求提供 HA,您应该将 BizTalk 服务器配置为处于同一 BizTalk 组中的主动/主动配置(无 MSCS)中。执行此操作后,您将在这两者之间安装配置 NLB。您的客户端将能够通过 NLB 群集查询 Web 服务,并且 NLB 服务会将请求路由到群集内的特定服务器(您的 asmx 文件应在两台服务器中安装和配置)。
关于 MSMQ,您到目前为止获得的信息是正确的,确保该适配器 HA 的唯一方法是对 BizTalk 服务器进行群集。如果您也想实现这一点,那么您必须为 SOAP 接收主机和 MSMQ 主机拥有单独的基础结构。
出现这种情况的主要原因是 BizTalk 隔离主机不支持群集,因此 BizTalk InProcess 主机可能全部挂起,而隔离主机永远不会知道这一情况并会继续接收请求。
我目前正在设计一个非常相似的架构,因此如果您想分享更多评论或问题,可以通过 [email protected] 与我联系。
伊格纳西奥·基哈斯 Microsoft Biztalk 服务器专家
关于Biztalk Server 2009 - 故障转移群集和网络负载平衡 (NLB),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2702915/