我有一个用例,我们需要在分布式事务中同时使用 MySQL 和 MongoDB,即如果 MySQL 或 MongoDB 中的任何一个失败,则 MySQL 和 MongoDB 都必须失败,即 MongDB 和 MySQL 完成的所有操作都应该被还原(如果有的话)数据库失败。
我知道两阶段提交协议(protocol)或 XA 事务,并已成功使用 MySQL 和 zope 事务实现它。但是,现在我希望它同时使用 MongoDB 和 MySQL 来实现。
我也读过,this question on stackoverflow ,但它似乎已经过时了。
在 MongoDB 4.2 中,MongoDB 支持不同分片之间的分布式事务,但有没有办法可以使用它在 MySQL 和 MongoDb 中实现分布式事务。
我不想要最终一致性。我正在寻找真正的分布式事务,即除非并且直到我提交更改,否则用户不应该能够在 MySQL 和 MongoDB 中看到更改的数据
首选语言是 Python,但如果有办法不能用 Python 实现但可以用其他语言实现,那也没关系。
任何形式的帮助都会很棒。谢谢!
最佳答案
不可能。您在 MongoDB 4.2 中引用的分布式事务功能是为了确保 MongoDB 中分片的事务完整性,而不是跨 MongoDB 和其他数据库、XA 或其他数据库。
关于mysql - 分布式事务中的MongoDB和MySQL事务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58586687/