skb*_*skb 5 transactions nservicebus distributed-transactions
我正在学习NServiceBus和MSMQ.有人告诉我,MSMQ中的事务队列很糟糕,使用它们对性能非常不利.有谁知道为什么?我猜这是来自它使用DTC的概念,每个人都知道DTC不是真正的可扩展解决方案.在我看来,MSMQ与NServiceBus并没有那么糟糕有几个原因,但我不知道我是否理解它是如何完全运作的.从逻辑上看,我可以想到NServiceBus可能会使用交易的3个地方,以确保交付:
任何人都可以直接告诉我NServiceBus如何做到这一点?
And*_*und 12
Msmq事务不保证接收方已收到消息.事务保证您的计算机上的msmq基础结构已收到消息,并且如果消息是持久的(NSB中的默认值),则表示它已保留在磁盘上并将在重新启动后继续存在.然后,消息将由msmq传递,而不会阻止调用方.这被称为"存储和转发"
默认情况下,MSMQ仅保证您的本地msmq基础结构已收到该消息.不要求接收服务器在线.这可以启用(参见下面John的回答)
这是国际海事组织NSB的主要卖点之一.使用跨本地队列和数据存储(即分布式事务)的事务的能力对于保证一致性至关重要.即如果出现故障,则数据存储中不会保留任何内容,并且无需用户执行任何操作即可回滚并重试消息.
与#1相同.唯一的保证是每个订户最终都会收到已发布的消息.没有阻塞调用,只要你有可用的磁盘空间和发布服务器,调用将立即返回.
希望这可以帮助!
| 归档时间: |
|
| 查看次数: |
3227 次 |
| 最近记录: |