目前正在将单体应用迁移到微服务中,我想知道如何在跨应用中实现分布式事务。有没有RabbitMQ处理分布式事务的例子?
请注意,这不是一个重复的问题。我还提供了一些示例,但我没有找到任何实现。
http://lifeinide.com/post/2017-12-29-spring-boot-rabbitmq-transactions/
最佳答案
通常在微服务世界中,不鼓励使用 2PC 协议(protocol)的分布式事务,因为它速度慢且不可扩展。而是一种称为 Saga 的模式被推荐。使用补偿步骤或 Activity 以相反的顺序回滚故障。整个想法是让微服务只做本地事务,跨微服务的事务应该以可扩展的方式完成,并使用可以在逻辑上本地补偿失败事务的策略。 Saga 模式可以使用消息传递代理,事件可以被推送到那里并被监听——这是你可以使用 RabbitMQ 的地方。 可以看到示例项目here和 here .
关于java - 在 spring boot 应用程序中使用 RabbitMQ 进行分布式事务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57589001/