【问题标题】:Implementing a Message Bus architecture实现消息总线架构
【发布时间】:2010-10-17 21:14:10
【问题描述】:

我目前正在为我公司的新消息总线架构进行分析和设计。我过去曾尝试过 MSMQ 做类似的事情,它运行良好,并且正在考虑为这个项目再次做同样的事情,但使用 WCF 作为 API 而不是使用 System.Messaging API。有人在 WCF 中使用过 MSMQ 吗?比 System.Messaging API 更容易使用吗?与 System.Messaging 相比,使用 WCF 有什么好处,反之亦然?

【问题讨论】:

    标签: .net architecture msmq messaging


    【解决方案1】:

    恕我直言,有这么多优秀、灵活且经过验证的总线架构可供选择(NServiceBusMass TransitRhino Service Bus),实现您自己的架构将是一个很大的NIH。这不是一项简单的任务。

    Udi 在this message 中描述得很好。

    【讨论】:

    • mausch 感谢您提供有关现有消息总线系统的信息。我不知道已经有这样的系统向公众开放!
    • 这如何回答 OP 的问题,即他应该直接使用 MSMQ 还是 WCF 与 MSMQ 绑定RoadWarriors下面的回答我觉得更符合OP的问题。
    【解决方案2】:

    抱歉,来晚了,但希望我的回答对 MSMQ 4.0 用户有用(但不一定对更高版本的用户有用)。

    WCF Queuing 和 System.Messaging 都是 MSMQ API 的包装器。 WCF 更加复杂和复杂,但确实具有以下好处:

    • 应用程序业务流程的 OO 视图,而不是其通信管道。
    • 免费的端到端消息加密和身份验证。 System.Messaging 仅支持有线加密,不支持商店加密。
    • 如果您愿意,可以在 IIS 中托管,而不是构建自己的自定义主机。
    • 免费消息关联。这使您可以自动将消息分组到会话中。
    • 事务性批处理免费。

    【讨论】:

    • 使用 WCF,您无需安装 IIS 即可提供任何类型的服务。误导性答案。
    • @argatxa:我是说使用 WCF,您可以在 IIS 中托管。我同意您不需要在 IIS 中托管。我将编辑我的答案以反映这一点。
    • @RoadWarrior 您的第一个比较是正确的,但是您在其他比较中是不正确的。 1) MSMQ 和 WCF 都有相关 ID。 2) MSMQ 有事务 3) MSMQ 使用身份验证和授权。也可以说 MSMQ 比 WCF 更难仅仅因为它是一个 MOM API
    • @Micky:这个答案是 5 年前的,讨论了 MSMQ 4.0。我认为您应该根据当前版本(6.3)创建自己的答案。我早就转向 RabbitMQ。
    【解决方案3】:

    Apache ActiveMQ(开源)消息代理也有一个 .NET 客户端:

    http://activemq.apache.org

    与 Apache Camel 和 Apache ServiceMix 一起,企业集成模式和企业服务总线系统易于设置。

    【讨论】:

      猜你喜欢
      • 2014-08-28
      • 2018-12-22
      • 1970-01-01
      • 2011-07-14
      • 2020-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-21
      相关资源
      最近更新 更多