我正在尝试设置可以在 BizTalk 2010 中一次运行的最大编排数量。我发现我可以在主机级别为编排指定限制,并且可以选择指定暂停时间和恢复时间规范(在主机设置的“编排节流”选项卡上)。
根据阅读我可以在 MSDN 上找到的有限文档,我解释说,在为“暂停”设置指定的数字处,BizTalk“暂停”并且不再启动新的编排,直到活动编排的数量为 < = 设置时简历的规范。这是一个准确的解释吗?
我正在尝试设置可以在 BizTalk 2010 中一次运行的最大编排数量。我发现我可以在主机级别为编排指定限制,并且可以选择指定暂停时间和恢复时间规范(在主机设置的“编排节流”选项卡上)。
根据阅读我可以在 MSDN 上找到的有限文档,我解释说,在为“暂停”设置指定的数字处,BizTalk“暂停”并且不再启动新的编排,直到活动编排的数量为 < = 设置时简历的规范。这是一个准确的解释吗?
看看这个页面; BizTalk 设置仪表板
特别是“暂停”部分说;
指定您希望订阅存储的最大消息数。当订阅有大于或等于指定数量的等待消费的消息时,这些消息不会传递到订阅实例。消息的最小数量将是“恢复时间”值。例如,如果您将 Pause at 值设置为 100,则意味着业务流程有 100 条未完成的消息,并且 MessageBox 将停止发送其他消息。
我对这个设置的理解(假设它与自 BizTalk 2006 以来BTSNTSvc.exe.config 中的 Throttling PauseAt / ResumeAt 条目相同)是它将消息数量限制为任何单个订阅(任何类型的端口或编排),并且不一定是特定类型的并发编排的数量。此订阅的任何其他消息都将在消息框中排队。(恕我直言,我发现 BTS Throttling 设置更多的是 BizTalk 的自我保存机制,而不是特定于应用程序的调整机制)
如果您需要限制特定类型的业务流程的数量(例如,如果 BizTalk 使用有限的 WCF 或 SQL 资源重载下游应用程序),您将需要实现单例业务流程的变体(即并发业务流程 <= N)。Richard Seroter在这里描述了这种机制(负载平衡/循环调度,尽管我们使用了 Mike S 在评论中建议的随机数生成修改)。关于单例还有一些额外的健壮性问题,因为单个编排将处理所有/许多消息 - 例如,尽可能紧密地确定消息和变量的范围。您还需要监控单例,以确保消息的积压不会太高 - 我们发现,一旦您在单例上排队了 10k+ 条消息,处理时间就会减慢。