java - 在 spring boot 应用程序中使用 RabbitMQ 进行分布式事务

标签 java transactions microservices distributed-transactions

目前正在将单体应用迁移到微服务中,我想知道如何在跨应用中实现分布式事务。有没有RabbitMQ处理分布式事务的例子?

请注意,这不是一个重复的问题。我还提供了一些示例,但我没有找到任何实现。

http://lifeinide.com/post/2017-12-29-spring-boot-rabbitmq-transactions/

最佳答案

通常在微服务世界中,不鼓励使用 2PC 协议(protocol)的分布式事务,因为它速度慢且不可扩展。而是一种称为 Saga 的模式被推荐。使用补偿步骤或 Activity 以相反的顺序回滚故障。整个想法是让微服务只做本地事务,跨微服务的事务应该以可扩展的方式完成,并使用可以在逻辑上本地补偿失败事务的策略。 Saga 模式可以使用消息传递代理,事件可以被推送到那里并被监听——这是你可以使用 RabbitMQ 的地方。 可以看到示例项目herehere .

关于java - 在 spring boot 应用程序中使用 RabbitMQ 进行分布式事务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57589001/

相关文章:

java - 不断阅读java WatchEvents

java - 重构这个简单方法的最有效方法是什么?

java - 什么时候可以很快使用新的 Java 特性?

mysql - Insert..Select into InnoDB table with commit after every insert?

nhibernate - 何时在 ASP.NET MVC 2 应用程序中提交 NHibernate 事务?

cassandra - 事件溯源微服务: How to manage timestamp

java - Spring 4.07 Junit 测试和 Autowiring

php - 在 php 循环中将数据写入 redis 时发生了有趣的事情

spring-boot - 如何使用 JHipster 为现有应用程序生成前端代码?

python - 如何在 python 中扩展 Kafka Consumers?