使用NServiceBus将数据添加到数据库和队列,而不使用事务

使用NServiceBus将数据添加到数据库和队列,而不使用事务,nservicebus,Nservicebus,我目前正在开发一个RESTAPI。api执行基本的crud操作。使用RabbitMQ将数据同步到遗留系统。api在SQL Server上作为数据库运行 我想知道如何确保数据保存在数据库中,并在总线上发送消息 您缺少分布式事务这一事实对我来说似乎是一个非常普遍的问题,因此我想知道是否有使用NServiceBus解决此问题的最佳实践?RabbitMQ本身不支持分布式事务,因此在这种情况下,NServiceBus可以做的事情不多。不过,一个选择是: 端点配置为使用 当REST端点接收到HTTP请求时,

我目前正在开发一个RESTAPI。api执行基本的crud操作。使用RabbitMQ将数据同步到遗留系统。api在SQL Server上作为数据库运行

我想知道如何确保数据保存在数据库中,并在总线上发送消息


您缺少分布式事务这一事实对我来说似乎是一个非常普遍的问题,因此我想知道是否有使用NServiceBus解决此问题的最佳实践?

RabbitMQ本身不支持分布式事务,因此在这种情况下,NServiceBus可以做的事情不多。不过,一个选择是:

端点配置为使用 当REST端点接收到HTTP请求时,将在本地向self发送一条消息。在此阶段不执行DB操作 收到“发送到自己”消息后,您现在处于传入消息的上下文中,您可以: 执行CRUD操作 发送外发消息 发件箱将保证一致性,即使没有分布式事务