Heim  >  Artikel  >  Backend-Entwicklung  >  Probleme mit der Datenkonsistenz

Probleme mit der Datenkonsistenz

WBOY
WBOYOriginal
2016-09-19 09:16:261474Durchsuche

In einem Code werden MySQL, Redis und Mongodb gleichzeitig betrieben. Wie können wir die Konsistenz der Daten zwischen diesen Datenbanken sicherstellen?
Msyql speichert beispielsweise Feld A, Redis speichert Feld B und Mongodb speichert Feld C. Wie können wir sicherstellen, dass ABC gleichzeitig erfolgreich ist oder fehlschlägt

Antwortinhalt:

In einem Code werden MySQL, Redis und Mongodb gleichzeitig betrieben. Wie können wir die Konsistenz der Daten zwischen diesen Datenbanken sicherstellen?
Msyql speichert beispielsweise Feld A, Redis speichert Feld B und Mongodb speichert Feld C. Wie können wir sicherstellen, dass ABC gleichzeitig erfolgreich ist oder fehlschlägt

Obwohl die Vorgänge gleichzeitig erfolgen, wird jede Datenbank anders verarbeitet und es gibt keine Garantie dafür, dass sie alle erfolgreich sind.
Der endgültige Erfolg kann dann betrachtet werden, wenn alle drei Prozesse erfolgreich sind. Wenn einer fehlschlägt, wird dies als Misserfolg betrachtet.

Ist diese Einstellung korrekt?

Ich denke, Redis- und MySQL-Transaktionen sind einfacher zu betreiben. Starten Sie die Transaktion vor dem Einfügen und der Mongodb-Vorgang ist erfolgreich

Da es sich um drei Arten von Datenbanken handelt, sollte es kein vorgefertigtes XA-Protokoll geben, um eine starke Konsistenz jeder Datenbank sicherzustellen. So können Sie sich mit dem nächstbesten zufrieden geben und letztlich für Konsistenz sorgen.

Verteilte Transaktion 1
Verteilte Transaktion 2

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn