【发布时间】:2011-10-14 13:38:21
【问题描述】:
任何具有 NServiceBus 经验的开发人员/架构师都可以提供以下方面的指导和帮助吗?
我们的业务需要(而不是很多钱)在外部托管的应用程序和我们的内部 ERP 之间创建一个健壮的接口(是的,不止一个)。
当第三方应用程序中发生某些活动时,它们会向我们发送消息。即调用 Web 服务,传递消息中的各种信息字段等。我们无法控制也无法更改此第三方应用程序。
我的职责是创建此 Web 服务并将消息处理到每个 ERP 中。第三方决定了 Web 服务的外观,但不决定它负责什么。我们必须接受,如果他们得到“成功”的回复,那么我们此时已对该消息负责!即,我们需要确保尽可能接近完美,不会发生数据丢失。
这是我对使用 NServiceBus 感兴趣的地方。首先使用它来存储/接受消息。在这一点上,我迷路了,我不知道应该发生什么,即遵循什么设计。另一台机器(进程)是否订阅并获取消息以将其处理到 ERP 中,如果是这样,因为每个 ERP 集成逻辑不同,我是否为每个 ERP 制作一个订阅者?但是,一条消息可能有两个目标 ERP 目标,因此最好发送消息而不订阅消息。
显然,在整个设计中,我需要一些有助于确定目标 ERP 的业务规则,然后是确定每个 ERP 中实际发生什么的业务规则。所以我也有一个关于 BRE 的问题,但这可以等待,尽管仍然可能是消息必须执行的驱动程序。
所以:
第三方>网络服务调用>存储消息(&返回成功)>确定哪个ERP是目标>处理每个到ERP>标记消息完成
如果出现任何故障,请确保消息不会丢失。 p.s.整机可能死机,MSMQ如何防止丢失?这只是磁盘弹性等吗?
非常感谢您阅读并提供更多建议。
【问题讨论】:
标签: nservicebus