我在.NET应用程序中引入RabbitMQ,希望仅在数据库事务成功时才能发布消息,反之亦然,如果消息发布引发异常,则不应保存数据库中的数据。 据我了解,Java Spring中有一个类似的东西,叫做“ RabbitTransactionManager”,我想知道是否有.NET替代品?
最初的计划是使用RabbitMQ .NET客户端的TxSelect / TxCommit / TxRollback方法。 以我的理解,最常见的解决方案是将消息发布包装到代码中的SQL事务范围中,但是在这种情况下,消息可能会发布,但数据未保存。
我找到了一篇文章,其中描述了一些解决问题的技术: https://blogmilind.wordpress.com/2017/11/20/send-message-in-transaction/
但是也许有更优雅的方法,还是开箱即用的方法?