1

请考虑 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"

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

提前致谢。

4

3 回答 3

1

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

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

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

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

于 2009-03-16T13:58:53.613 回答
0

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

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

于 2009-03-15T18:48:37.670 回答
0

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

于 2009-04-22T20:56:12.647 回答