【问题标题】:BizTalk port/orchestration filtering performance overheadBizTalk 端口/编排过滤性能开销
【发布时间】:2009-03-15 11:46:03
【问题描述】:

请考虑 BizTalk 2006 中的以下场景:

收到的消息应该根据以下约束路由到编排或发送端口

(Message.Type = "SomeType" AND Message.Sender = "SomeSender")
OR
(Message.Type = "SomeOtherType" AND Message.Sender = "SomeOtherSender" AND Message.IsSigned = true)
OR
(Message.Sender = "AnotherSender" AND Message.IsSigned = true)
etc...

一种方法是在编排接收形状或发送端口上应用过滤器。

另一方面,我可以根据消息字段将路由数据字段提升到自定义接收管道组件中的消息上下文,然后仅对过滤器应用一个约束:

Message.Route = "Route A"

这些替代方案中的哪一个是性能成本更低的解决方案(更低的延迟)?

提前致谢。

【问题讨论】:

    标签: performance routing biztalk


    【解决方案1】:

    在这两个选项之间,我通常会选择编排过滤器。 订阅的实现非常快,因此过滤几个片段并不是很大的开销。

    拥有一个流水线组件并提升一个属性不能保证更快,并且在开发和维护方面是一种开销。

    在我看来,编排过滤器有一点缺点(但是 - 从您的问题看来,您不一定会使其变得更好),这就是编译规则的事实(与发送端口过滤器不同,例如)

    如果您需要它更加动态,您可以编写管道组件,使其可配置,这会给您带来一些好处。

    【讨论】:

      【解决方案2】:

      影响延迟的主要因素是持久性点的数量(将状态保存到数据库)。

      如果备选方案 2(在管道中推广“路由”)允许您完全取消编排(或者您是否需要它来做其他事情?)并让您拥有一个纯消息传递解决方案(端口到端口),那那里有编排时会更快。

      【讨论】:

        【解决方案3】:

        如果您有一类发件人(如您所见),您还可以考虑使用派对/角色链接实现,这将为您提供额外的灵活性。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-04-25
          • 2021-07-21
          相关资源
          最近更新 更多