主要的功能区别是,Service Bus提供了开箱即用的消息交换语义支持,例如通过发布-订阅进行基于主题的路由。另一方面,MSMQ是一个轻量级的存储转发队列系统,支持点对点单向消息传递。Service Bus:1. 依赖于SQL Server,并且 2. 是一个代理。这可能被认为是一个缺点。如果您正在寻找pub-sub框架,那么目前流行的一个(在单线程模式下免费)是NServiceBus,它位于MSMQ之上,但具有可替换的传输方式。
优点 Service Bus允许您通过tcp和http发布消息,这很酷,并且使得解耦更加容易。 Service Bus是一个SQL数据库,因此灾难恢复要简单得多,成本也更低。 缺点 Service Bus是集中式的,而MSMQ是联邦式的,因此潜在的可伸缩性更高。尽管您可以在WSB中使用更多节点进行扩展。 在发布之前,您需要与中央总线建立实时连接。因此,MSMQ作为联邦式(在每台计算机上)使其对客户端更加可用。 但是,人们正在将MSMQ用作本地存储,然后在连接可用时将其推送到总线上。 目前我们正在使用Service Bus而不是MSMQ,并且体验良好。