php - 处理多个数据库之间的事务

标签 php mysql database mongodb transactions

假设我有一个用于我的应用程序数据的数据库,它是 mysql,我有另一个用于日志记录的数据库,它是 mongodb。

我如何处理这两个数据库之间的事务。 例如,假设我想删除 mysql 数据库中的一条记录并在 mongodb 数据库中插入一条新记录(新日志记录)。 如何确保数据完整性? 如何确保仅在数据库已成功删除后才插入日志记录。

最佳答案

拥有一个需要在 mysql 和 mongodb 之间进行事务处理的架构似乎是你的问题。在分布式系统中,这似乎是最终一致更为正常。事务性AND 分布式非常困难。或许您可以使用某种事件源来引发一个删除记录事件,该事件将最终从 MySql 中删除一条记录并最终记录一个删除条目到 MongoDb。

或者,您可以实现 SAGA 或工作流解决方案来管理跨两个数据源的事务,并重试日志条目一定次数,并在无法完成时进行必要的补偿。

关于php - 处理多个数据库之间的事务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50882635/

相关文章:

javascript - 无法将本地存储上传到数据库

mysql - 将所有多行 LONGTEXT 列转换为 JSON 列

mysql - 网络消息系统的数据库结构

mysql - 为什么我的 React 应用程序(具有 Node 和 mysql 后端)可以在本地运行,但不能在 Heroku 上运行?

mysql - 是否有必要为只包含 7 或 8 个可能字符串的列创建索引?

sql-server - 防止复制数据库文件

mySQL插入和删除错误

php - 使用 fputcsv 将数组放入 CSV

php - SplFixedArray 是在幕后用 C/C++ 实现的吗?

php - 如何在php中向数据库中插入文本