我正在学习 NServiceBus 和 MSMQ。有人告诉我 MSMQ 中的事务队列很糟糕,使用它们对性能来说真的很糟糕。有谁知道为什么?我猜这来自于它使用 DTC 的概念,每个人都知道 DTC 并不是真正的可扩展解决方案。在我看来,带有 NServiceBus 的 MSMQ 并不是那么糟糕有几个原因,但我不知道我是否完全理解它是如何工作的。从逻辑上看,我可以想到 NServiceBus 可能使用事务来保证交付的 3 个地方:
谁能告诉我 NServiceBus 如何做到这一点?
最佳答案
Msmq 事务不保证接收者已经收到消息。该事务保证消息已被您机器上的 msmq 基础结构接收到,如果消息是持久的(NSB 中的默认值),这意味着它已持久保存在磁盘上,并且可以在重新启动后继续存在。然后消息将由 msmq 传递,而不会阻止调用者。这更好地称为“存储转发”
希望这可以帮助!
关于transactions - NServiceBus:MSMQ 事务不是很糟糕吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3515372/