MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Mongo Change Streams, die mehrmals ausgeführt werden (Art von):Node-App, die mehrere Instanzen ausführt

Dies mit starken Garantien zu tun, ist schwierig, aber nicht unmöglich. Ich habe hier über die Details einer Lösung geschrieben:https://www.alechenninger.com/2020/05/building-kafka-like-message-queue-with.html

Die Beispiele sind in Java, aber der wichtigste Teil ist der Algorithmus.

Es kommt auf ein paar Techniken an:

  • Jeder Prozess versucht, eine Sperre zu erlangen
  • Jede Sperre (oder jede Änderung) hat ein zugehöriges Fencing-Token
  • Die Verarbeitung jeder Änderung muss idempotent sein
  • Während der Verarbeitung der Änderung wird das Token verwendet, um geordnete, effektive einmalige Aktualisierungen sicherzustellen.

Weitere Details im Blogbeitrag.