优化 MSMQ 适配器的性能

MSMQ 适配器的优化在发送端与接收端有所不同。 对于接收端,通过设置接收位置属性可控制优化。 对于发送端,则可以使用业务流程来控制优化。

接收优化

在接收端,适配器应使用单个执行线程。 适配器是使用单个线程还是多个线程取决于接收位置上的 有序处理 属性的设置,如下所示:

  • 当 属性为 True 时,适配器将在单个线程上运行。 这样可限制适配器一次只能处理一个消息,从而节省内存。 请注意,这实际上将 批大小 设置为 1 (1) ,而不考虑属性表中分配给它的值。

  • 有序处理False 时,适配器会运行多个线程,并且可以一次处理多个消息,从而提高性能。

    如果对管理服务器资源设置了高级权限,或者消息的数量或大小可能耗尽可用内存,则必须将 有序处理 设置为 True

    还可以通过减少接收位置上的 Batch Size 值来控制内存使用。 较小的批大小可使内存中保持较少的消息,从而仅使用较少内存。

    通过将发送端口和接收位置分别放置在单独的计算机上,也可以降低内存使用率。

发送优化

在发送端,可以使用示例业务流程来实现等效的单个消息处理。 该示例将发送单个消息,然后一直等到其收到确认后才会发送下一个消息。 有关详细信息,请参阅 如何创建 MSMQ 接收位置和从代码发送端口

远程事务性读取操作

使用 BizTalk Server MSMQ 适配器能够从事务性 MSMQ 队列执行远程读取操作。 这是因为 MSMQ 4.0 和更高版本支持远程事务性读取操作。 但是,事务性读取操作的速度通常较慢。 为优化性能,应在没有其他选择时使用这些操作。

另请参阅

如何配置 MSMQ 接收位置
如何配置 MSMQ 发送端口
配置 MSMQ 适配器