MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Mongo Change Streams s'exécutant plusieurs fois (en quelque sorte) :application Node exécutant plusieurs instances

Faire cela avec de solides garanties est difficile mais pas impossible. J'ai écrit sur les détails d'une solution ici :https://www.alechenninger.com/2020/05/building-kafka-like-message-queue-with.html

Les exemples sont en Java mais la partie importante est l'algorithme.

Cela se résume à quelques techniques :

  • Chaque processus tente d'obtenir un verrou
  • Chaque serrure (ou chaque changement) a un jeton de clôture associé
  • Le traitement de chaque modification doit être idempotent
  • Lors du traitement de la modification, le jeton est utilisé pour garantir des mises à jour ordonnées et efficaces une seule fois.

Plus de détails dans le billet de blog.