1

Nous avons une application Django (REST webservice1) et une base de données postGres (db1) la sauvegardant.Synchroniser la table de base de données postgres entre 2 services Web

Nous avons également un autre service web REST2 et son propre db2.

Il existe une table1 dans db1. Disons que c'est le point de vérité original (copie originale). table1 créer/mettre à jour/supprimer des appels viennent à webservice1. Chaque fois que ces actions se produisent dans WebService1, il modifie les données dans le tableau 1 et émet également des événements (dans AWS Kinesis. Appuyez sur Kinesis est rejugé mais peut échouer) comme

  • item_created
  • item_deleted
  • item_modified

Nous souhaitons migrer les données de table1 de db1 vers db2 (et également les synchroniser autant que possible). webservice2 ne doit pas exposer les données périmées liées à table1 à partir de son point de terminaison. webservice2 a la possibilité d'interroger webservice1 pour les données table1, mais l'idée générale est de réduire la charge des requêtes db sur webservice1.

Je me demandais quel était le meilleur/le plus simple pour garder le contenu de table1 presque à parité dans webservice2.

  • Une technique spécifique postgres que nous pouvons utiliser? comme un exe qui garde la trace de changelog dans la table1 et continue de pousser les données à webservice2?
  • webservice2 peut écouter des événements et interroger les données particulières de webservice1 et les enregistrer dans sa base de données. Le problème se pose si ces événements de flux sont perdus.

Les suggestions sont invitées.

+0

Vous pouvez probablement utiliser [Bucardo] (https://bucardo.org/wiki/Bucardo/Documentation/Overview) pour la réplication à table unique entre vos deux bases de données. – joanolo

+0

Votre webservice 2 va-t-il seulement interroger les données de la table synchronisée? – Ashan

+0

oui, pour l'instant nous voulons juste webservice2 exposer les données de table1. Plus tard, nous aurons peut-être besoin de plus. –

Répondre