Spring 从 2 个单独的数据库回滚事务

Spring rollback transaction from 2 Separate Databases

我有一个 Spring 引导服务器,它收集 2 个 gRPC 微服务 - 其中一个与 DynamoDB 和另一个 CockrachDB 数据库一起工作。我需要确保提交在两个数据库中都能正常工作,如果不需要从它们中回滚。

问题是如果这在第一个数据库中成功并且在第二个数据库中出现异常,则可能无法正常从第一个数据库回滚。

我怎样才能使提交在两个数据库中一起成功或失败?

对于分布式事务管理框架或架构,您可以参考这些链接:

  1. https://seata.io/en-us/
  2. https://microservices.io/patterns/data/saga.html
  3. https://medium.com/@dongfuye/the-seven-most-classic-solutions-for-distributed-transaction-management-3f915f331e15
  4. https://dba.stackexchange.com/questions/18435/cap-theorem-vs-base-nosql#:~:text=1%20Answer&text=CAP%20is%20Consistency%2C%20Availability%2C%20and,throws%20consistency%20out%20the%20window.

希望这些链接能有所帮助。