我想知道事务发件箱如何工作以及MT如何保证数据库事务和消息发送操作的一致性。
在aspnetcore MVC示例中,当数据库事务成功提交,但是由于某种原因消息发送失败时,MT会重试发送消息吗?
我没有看到有关数据库存储的任何配置,我正在考虑如何保证这种可靠性
如文档中所述,TransactionOutbox功能可确保仅在从使用者上下文发送或发布的所有消息实际发送到消息总线时才提交事务。
如果传输未确认消息,MassTransit 总是重试发送消息。无论如何,它不是发件箱的一部分。
如果传输无法发送或发布您的消息,则不会进行提交,因此事务将回滚。