mysql - 分布式事务中的MongoDB和MySQL事务

标签 mysql mongodb zope distributed-transactions

我有一个用例,我们需要在分布式事务中同时使用 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/

相关文章:

MySQL:空间查询以查找纬度/经度点是否位于给定边界内

ruby-on-rails - 如何处理 Rspec 中的 Mongoid::Errors::DocumentNotFound?

mongodb:如何过滤掉今天创建的记录?

javascript - 如何对 mongodb 文档进行原子自定义更新?

php - MySQL 查询并输出到 PHP 页面

mysql - 使用整数名称创建/删除 MySQL 数据库

php - 为 PHP 表单插入查询

Plone 从 Ubuntu 8.04 升级到 Ubuntu 12.04

python - Cookie Cumbler 在 Zope 中如何工作?

plone - 在 Plone 3.2.3 上运行 bin/buildout 时出现语法错误