我最近才开始使用 Rebus,并注意到它总是会创建事务性 msmq 队列,从而导致 HDD 的流量过大(0,5 - 5mb/sec)。这是故意的吗?可以做些什么来避免它吗?
问问题
449 次
2 回答
2
正确地观察到 Rebus(使用其默认MsmqMessageQueue
传输)总是创建事务性 MSMQ 队列。它还将拒绝使用非事务性输入队列,如果您自己创建了非事务性队列并尝试使用它,则会在启动时引发错误。
这是因为 Rebus 的理念围绕着消息是重要数据这一理念展开,与 SQL Server 或您使用的任何数据库中的数据一样重要。
是的,MSMQ 实现持久性的方式是消息在发送时被写入磁盘,因此这可能解释了您所看到的磁盘活动。
如果您对您希望系统如何处理其消息有不同的看法,那么没有什么可以阻止您将 Rebus 的传输替换为可以与非事务性 MSMQ 一起使用的东西。但请记住,如果您这样做,Rebus 的所有交付保证都将无效;)
于 2013-10-31T13:44:59.870 回答
2
我们有同样的观察结果,令人讨厌的是,即使队列上没有消息,我们也有 300/500 KB/sec 的磁盘写入速度。似乎只有从队列中轮询会导致在磁盘上不断写入。
吉安玛丽亚。
于 2016-09-29T08:25:58.030 回答