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

时间:2018-06-15 21:03:54

标签: php mysql database mongodb transactions

考虑我有一个数据库用于我的应用程序数据是mysql,我有另一个数据库用于我的日志记录目的,即mongodb。

如何处理这两个数据库之间的事务。 例如,假设我想删除mysql数据库中的单个记录并在mongodb数据库中插入新记录(新日志记录)。 如何从数据完整性中得到保证? 如果只有在成功删除数据库后才能确保插入日志记录。

1 个答案:

答案 0 :(得分:3)

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

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