【问题标题】:Queuing Biztalk Subscriptions排队 Biztalk 订阅
【发布时间】:2011-07-12 03:58:25
【问题描述】:

我们有一个使用 MLLP HL7 加速器向 BizTalk 发送 HL7 消息的系统。然后我们有几个目标系统,它们都需要自己的 HL7 消息格式,因此我们为每个目标使用编排,每个都涉及不同的转换。每个编排都使用一个过滤器来订阅接收端口。这种订阅模型运行良好,但如果我们需要停止或取消部署其中一个编排怎么办。订阅模型相对于推送模型的缺点是没有内置队列,因此如果删除编排,接收端口接收的消息不会为该系统排队。或者这是一个问题?你如何处理编排的升级等。有更好的设计模式吗?

【问题讨论】:

    标签: biztalk


    【解决方案1】:

    我认为更好的设计是将转换(映射)直接放在发送端口上。然后,您可以在不同的发送端口上设置过滤器以路由到目标系统。

    这种设计会使更新更容易一些,因为不需要首先删除编排来部署新版本的地图。然后,您所要做的就是停止端口(这使订阅保持活动状态,并且消息将排队等待其订阅端口)。端口停止后,您可以使用新版本的地图修改资源(程序集),然后开始端口以开始转换和发送排队的消息。

    在您需要控制更复杂的工作流程时使用编排通常是个好主意 - 而不仅仅是像您的情况那样应用地图。

    【讨论】:

    • +1。很好的建议,并且可以在我们的大部分场景中工作。在我们一些仍然需要编排的更复杂的项目中,您知道我可以采用哪些设计模式来缓解我所描述的情况吗?
    • 由于一条消息可以有多个订阅者,因此您可以使用带有出站映射的发送端口和过滤器表达式。您可以在发送端口上使用过滤器和过滤的编排。当您停止编排(并使其保持登记状态)时,它仍会将消息排队,这样您就不会丢失任何内容,并且会在您重新启动后处理排队的内容。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-22
    • 1970-01-01
    • 2017-07-28
    • 1970-01-01
    • 2018-10-11
    相关资源
    最近更新 更多