6

我有一个由三部分组成的应用程序:

  • 面向最终用户和业务合作伙伴的前端网上商店
  • 处理这些订单的订单管理系统
  • 一个技术数据库系统,用于处理订购的这些产品和服务的所有技术细节

如今,这些系统(位于不同的服务器上并由不同的团队开发)使用 WCF Web 服务进行互操作。

此设置工作正常 - 只要所有服务器都已启动。他们不是——无论如何,并非总是如此。

因此,我开始考虑使用 MSMQ 或 SQL Server Service Broker 来处理这些系统之间的通信——至少在将订单存储到订单管理系统中的网店或发送技术数据的订单管理系统时到技术数据库系统。

我希望在整个系统中实现更高的可靠性——即使订单管理后端暂时不可用,用户仍然可以下订单并且不会丢失。

但最大的问题是:MSMQ 还是服务代理??这三个系统都基于 Windows 和 .NET,并且已经在三个独立的服务器上使用 SQL Server。

有没有人有一些确凿的、真实的事实来支持(或反对)这两种技术中的一种?您对这两组技术的真实体验是什么?优点和缺点。如果你可以从头开始——你会选择哪一个?还是您会完全选择其他东西(什么?)?

4

1 回答 1

6

我在不同的情况下都使用了这两种方法,效果一样好。我的偏好非常基本:如果消息发送事件是从数据库事件触发的,则使用 SQL Service Broker;如果事件在代码中,则使用消息队列。这种偏好只是基于更容易在将触发事件的同一平台上进行设置。

于 2010-10-18T21:13:34.237 回答