【发布时间】:2012-07-31 11:39:01
【问题描述】:
最近,我一直在检查 RabbitMQ over C# 作为实现 pub/sub 的一种方式。我更习惯使用NServiceBus。 NServiceBus 通过在 TransactionScope 中登记 MSMQ 来处理事务。其他事务感知操作也可以加入同一个TransactionScope(如 MSSQL),因此一切都是真正的原子操作。下面由 NSB 引入 MSDTC 进行协调。
我看到在 RabbitMQ 的 C# 客户端 API 中有一个 IModel.TxSelect() 和 IModel.TxCommit()。这在提交之前不向交换器发送消息效果很好。这涵盖了有多个消息发送到需要原子的交换的用例。但是,有没有一种将数据库调用(比如 MSSQL)与 RabbitMQ 事务同步的好方法?
【问题讨论】:
-
您希望系统的吞吐量是多少?
-
@kzhen 我并不担心性能。不过,一致性很重要。我将使用持久的交换和队列。吞吐量不会那么高,可能每天 50-100,000 条消息。
标签: c# transactions rabbitmq