WCF或Windows服务实现MSMQ

时间:2013-06-28 17:49:01

标签: c# wcf windows-services msmq

我有一个客户端服务器设置,我通过http将消息发送到服务器(我使用托管为Windows服务的WCF服务。)在我当前的设置中,因为我看到一些消息在连接断开时丢失客户端和服务器,为了可靠性,我决定使用MSMQ.So客户端将消息发送到队列,服务器不断轮询队列,我需要在开发之前做出一些设计决定。 哪一个是最好的Windows服务或wcf服务(托管为Windows服务)?

除了WCF所拥有的Windows服务之外还有什么优势,如果我必须开发这样一个服务,其中所有必须做的就是从队列中连续读取消息并进行一些处理。我将使用一个特殊的队列来处理事务

1 个答案:

答案 0 :(得分:1)

我建议避免编写直接与MSMQ集成的代码,而是使用现有的服务总线为您执行此操作(如NServiceBus或MassTransit)。滚动自己的消息传递层可能适用于最简单的系统,但随着需求的变化,您将需要更全面的特色服务总线。我提到的服务总线以开发人员友好的方式执行以下操作:

  • 消息传递模式(即发即弃,请求 - 响应,发布订阅)
  • 消息序列化
  • 邮件路由
  • 失败/重试逻辑(即消息处理程序应该更新数据库,但数据库已关闭,您如何处理?)
  • 长时间运行的流程(也称为sagas)

如果你走自己的路线,这些只是你不久会写的一些东西。