MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Mongo Change Streams in esecuzione più volte (tipo di):app Node che esegue più istanze

Farlo con forti garanzie è difficile ma non impossibile. Ho scritto i dettagli di una soluzione qui:https://www.alechenninger.com/2020/05/building-kafka-like-message-queue-with.html

Gli esempi sono in Java ma la parte importante è l'algoritmo.

Si tratta di alcune tecniche:

  • Ogni processo tenta di ottenere un blocco
  • Ogni lucchetto (o ogni modifica) ha un token di scherma associato
  • L'elaborazione di ogni modifica deve essere idempotente
  • Durante l'elaborazione della modifica, il token viene utilizzato per garantire aggiornamenti ordinati ed efficaci.

Maggiori dettagli nel post del blog.