有没有人有MSMQ的架构信息?

时间:2009-10-09 15:38:29

标签: msmq

我正在尝试确定MSMQ是否是我们的应用程序与我们当前正在直接通信的第三方Web服务之间进行通信的正确工具。我们希望解除这一点,如果服务中断,生活仍然可以正常进行。

我找不到常见的MS绒毛之外的任何关于它是最好的东西并解决你所有的问题等等。如果我能找到一些介于营销绒毛和API之间的信息,那将非常有用 - 就像组件的体系结构图以及它们如何相互集成,更重要的是我如何与它们集成。

可能我只是在错误的地方寻找信息,所以如果有人能指出我正确的方向,我会很感激。

3 个答案:

答案 0 :(得分:3)

典型的MSMQ架构将由3部分组成......

  • 消息队列 - 这将在您的一台服务器上。您必须安装MSMQ位并创建队列。
  • 客户端 - 您的客户端会将消息插入队列。我假设你正在使用.NET。如果是这样,您想要的大部分内容将位于System.Messaging命名空间中。
  • Windows服务 - 这也可以在服务器上运行,可能与您的队列服务器相同。它的工作是观察队列,处理消息,处理确保外部服务可用,并可能进行一些记录。

这是一个article,应该更详细一些,并为您提供一些代码示例。

答案 1 :(得分:1)

MSMQ是一个消息队列的实现,就像websphere mq和一堆其他系统一样。在研究概念和高级架构时,我建议阅读消息队列以及如何在断开连接的场景中应用它们。我强烈推荐Patterns of Enterprise Application Architecture。有关msmq的具体示例,请查看Pro MSMQ: Microsoft Message Queue Programming它不包含所有特殊信息,但它会将其分组,以便比互联网上可用的大多数资源更好。这个Hello World with MSMQ article将为您提供一个很好的概述,它可以很容易地在开发系统上执行。

答案 2 :(得分:0)

如果从应用程序调用远程Web服务,则使用队列将应用程序处理与远程系统分离是有意义的。通过通过消息传递抽象通信并具有负责与Web服务通信的网关服务,您可以将应用程序与Web服务的延迟隔离开来,并通过减少应用程序内的请求/响应使用来将容错能力纳入设计中(因为默认情况下消息是异步的 - 你预先处理它。)

.NET的框架可以使这更容易(例如MassTransit或NServiceBus)。

您还可以查看SOA模式(由Arnon Rotem-Gal-Oz,Manning Press,在MEAP中)和企业集成模式(Hohpe,Woolf),后者是构建基于消息的任何人的基本读物。系统