实施消息总线架构

20

我目前正在为我们公司设计一种新的消息总线架构。我过去尝试使用MSMQ做类似的事情,它运作良好,现在考虑在这个项目中再次使用,但使用WCF作为API而不是使用System.Messaging API。有没有人在WCF中使用过MSMQ?相比使用System.Messaging API,使用它是否更容易?使用WCF和System.Messaging API各有哪些优点?

3个回答

33

mausch,感谢您提供有关现有消息总线系统的信息。我不知道已经有这样的系统向公众开放了! - heartlandcoder
1
这怎么回答OP的问题,即他应该使用纯粹的MSMQ还是带有MSMQ绑定的WCF?我认为下面的RoadWarriors答案更符合OP的问题。 - user585968

5

很抱歉回复晚了,但希望我的答案对于 MSMQ 4.0 用户有用(但不一定适用于后续版本的用户)。

WCF Queuing 和 System.Messaging 都是 MSMQ APIs 的包装器。WCF 更为复杂和高级,但具有以下优点:

  • 以面向对象的方式查看应用程序的业务流程,而不是通信管道。
  • 免费提供端到端的消息加密和身份验证。System.Messaging 仅支持在传输过程中的加密,而不支持在存储过程中的加密。
  • 如果需要,可以在 IIS 中托管,而无需构建自定义主机。
  • 免费提供消息相关性。这使您可以自动将消息分组为会话。
  • 免费提供事务批处理。

使用WCF,您不需要安装IIS来提供任何类型的服务。这是一个误导性的答案。 - argatxa
1
@argatxa:我的意思是,使用WCF可以在IIS中进行托管。我同意你不需要在IIS中进行托管。我会编辑我的答案来反映这一点。 - HTTP 410
@RoadWarrior,你的第一个比较是正确的,但在其他方面是错误的。1)MSMQ和WCF都有关联ID。2)MSMQ具有事务3)MSMQ使用身份验证和授权。此外,可以认为MSMQ比WCF更难,因为它是MOM API。 - user585968
1
@Micky:这个答案是5年前的,讨论的是MSMQ 4.0。我认为你应该基于当前版本(6.3)创建自己的答案。我早已转向RabbitMQ。 - HTTP 410

3

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

http://activemq.apache.org

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接