Ich baue einen Hintergrunddienst, der auf ein sehr kompliziertes Warteschlangensystem hinausläuft. Die Idee ist, Redis als nicht persistenten Speicher zu verwenden und ein Sub/Pub-Schema zu haben, das in einem Intervall läuft.Wie aktualisiere ich Daten in Redis und MySQL gleichzeitig?
Alle Abonnenten werden hinter einem Load Balancer stehen. Dadurch wird das komplizierte Problem der Statuserhaltung zwischen allen Servern hinter dem Load Balancer behoben.
Aber dies führt zu einem neuen Problem ... Wie kann ich sicherstellen, dass die nicht persistente (Redis) und persistente (MySQL) Datenbanken beide von meiner Anwendung (en) aktualisiert werden?
Es scheint, als wäre ich gezwungen, einen zu priorisieren, und wenn ich einen priorisieren muss, werde ich Persistenz priorisieren. Aber in diesem Szenario, was passiert, wenn MySQL aktualisiert wird, Redis nicht, und aus irgendeinem Grund habe ich die Verbindung zu MySQL verloren und kann meinen letzten Schreibvorgang nicht rückgängig machen?