我们有一个系统使用MLLP HL7加速器向BizTalk发送HL7消息。然后我们有几个目的地系统,它们都需要自己的HL7消息格式,因此我们对每个目的地使用编排,每个都涉及不同的转换。每个orchestrationi使用一个过滤器来订阅接收端口。此订阅模型工作得相当好,但如果我们需要停止或取消部署其中一个编排,该怎么办?与推送模型相比,订阅模型的缺点是没有内置的队列,因此如果删除编排,则接收端口拾取的消息不会为该系统排队。或者这是一个令人担忧的问题?你如何处理编排的升级,等等。有更好的设计模式吗?
发布于 2011-07-12 12:37:15
在我看来,一个稍微好一点的设计是将转换(映射)直接放在发送端口上。然后,您可以在不同的发送端口上使用筛选器来路由到目标系统。
这种设计将使更新变得更容易一些,因为不需要首先删除编排来部署新版本的地图。然后,您所要做的就是停止该端口(这将使订阅处于活动状态,并且消息将排队等待其订阅端口)。端口停止后,您只需使用新版本的map修改资源(程序集),然后启动到端口,即可开始转换和发送排队的消息。
通常,当您需要控制更复杂的工作流时,最好只使用编排(),而不仅仅是像您这样应用地图。
https://stackoverflow.com/questions/6659330
复制相似问题