假设我有一个用于我的应用程序数据的数据库,它是 mysql,我有另一个用于日志记录的数据库,它是 mongodb。
我如何处理这两个数据库之间的事务。 例如,假设我想删除 mysql 数据库中的一条记录并在 mongodb 数据库中插入一条新记录(新日志记录)。 如何确保数据完整性? 如何确保仅在数据库已成功删除后才插入日志记录。
最佳答案
拥有一个需要在 mysql 和 mongodb 之间进行事务处理的架构似乎是你的问题。在分布式系统中,这似乎是最终一致更为正常。事务性AND 分布式非常困难。或许您可以使用某种事件源来引发一个删除记录事件,该事件将最终从 MySql 中删除一条记录并最终记录一个删除条目到 MongoDb。
或者,您可以实现 SAGA 或工作流解决方案来管理跨两个数据源的事务,并重试日志条目一定次数,并在无法完成时进行必要的补偿。
关于php - 处理多个数据库之间的事务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50882635/