这是我提出的架构。进程A将创建项目并将其添加到本地计算机上的队列A,并且我计划从该队列中读取多个Windows服务实例(在不同的计算机上运行)。这些Windows服务中的每一个都将读取一组消息和然后处理该批次。
我想确定的是,特定邮件不会被多次处理(由不同的Windows服务)。 MSMQ默认是否保证单次交付? 我应该让队列进行交易吗?或者常规队列就足够了。
答案 0 :(得分:0)
如果您需要确保仅传递一次消息,则需要使用事务性队列。但是,当服务从队列中读取消息时,它将从队列中删除,并且只能接收一次。