据我了解,为了实现MSMQ负载平衡,必须使用NLB等技术。

为了实现MSMQ高可持续性,必须集群相关的BizTalk主机(因此,基础服务器必须在群集中本身)。

但是,根据Microsoft文档,NLB和故障转移聚类技术不兼容。请参阅此链接以获取参考: http://support.microsoft.com/kb/235305

谁能向我解释如何实现MSMQ负载平衡和高可用性?

先感谢您,

m

有帮助吗?

解决方案

我已经编辑了我的原始答案,因为经过反思,我认为我在谈论胡说八道。

我不认为可以在BizTalk中达到负载平衡和高可用性 交易 设想。在以下网站上查看“从MSMQ/T到Biztalk 2006中的MSMQ适配器的迁移注意事项”部分 http://blogs.msdn.com/eldarm/

总而言之,有几个场景:

高可用性(非交易)

您只需在NLB后面的多个BizTalk服务器上拥有MSMQ

高可用性(交易)

为此,您需要拥有一个群集的MSMQ主机,这意味着您不能在单个队列上进行任何类型的负载平衡。

一个可能的中途解决方案是在不同的聚类主机上创建两个MSMQ适配器,每个主机都处理不同的队列。听起来对我来说并不太好。

关键点是了解您需要交易,集群行为的原因 - 您需要订购的交付并确保不重复。


通常,一旦消息到达消息框数据库,我就不会遇到负载平衡MSMQ的麻烦。虽然确实,由于一台机器上的队列处理发生,您会看到不对称的负载,但在BizTalk环境的整体上下文中,这应该不重要。

同样,值得记住的是,由于简单的高可用性,您的原因是MSMQ:

MSMQ适配器接收处理程序 -MSMQ不支持远程交易读数;仅支持本地交易读数。 MSMQ适配器接收处理程序必须在群集MSMQ服务本地的主机实例中运行,以便使用MSMQ适配器完成本地交易读取。

那是以下内容 MSDN 页。

我希望这个编辑的答案有所帮助 - 我不认为这是您所追求的,也许我错了,您会找到适用于NLB和交易的MSMQ的解决方案,但是我对此的想法越多,似乎越多,似乎就越多这两种情况不兼容。

最后一个想法是,您可以尝试在服务器故障上发布类似的问题 - 您在堆栈溢出上获得了一些Biztalk Dev,包括至少两个MVP,但至少在我工作的地方,这就是我要传递的问题给我的网络团队。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top