Транзакция MongoDB и MySQL в распределенной транзакции - PullRequest
2 голосов
/ 28 октября 2019

У меня есть случай использования, когда нам нужно использовать и MySQL, и MongoDB в распределенной транзакции, т. Е. В случае сбоя MySQL или MongoDB, MySQL и MongoDB должны завершиться сбоем, т.е. все операции, выполняемые MongDB и MySQL, должны быть отменены, если таковые имеются. базы данных не удается.

Я знаю о протоколе двухфазной фиксации или транзакции XA и успешно реализовал его с транзакциями MySQL и zope. Но теперь я хочу, чтобы он реализовывался как с MongoDB, так и с MySQL.

Я также читал о этом вопросе о stackoverflow , но он кажется устаревшим.

В MongoDB 4.2 MongoDB поддерживает распределенные транзакции между различными шардами, но есть ли способ использовать его для реализации распределенных транзакций в MySQL и MongoDb.

Я не хочу возможной последовательности. Я ищу реальную распределенную транзакцию, т. Е. До тех пор, пока я не внесу изменения, пользователь не сможет увидеть измененные данные как в MySQL, так и в MongoDB

Предпочтительным языком является Python, но если есть способ, он не может бытьреализовано на Python, но доступно на других языках, это нормально.

Любая помощь будет отличной. Спасибо!

1 Ответ

1 голос
/ 29 октября 2019

Не возможно. Возможность распределенных транзакций, которую вы цитируете в MongoDB 4.2, предназначена для обеспечения целостности транзакций между осколками в MongoDB, а не между MongoDB и другими базами данных, XA или другими.

...