14 votes

Comment garder Firebase en synchronisation avec une autre base de données ?

Nous devons garder notre Firebase données en synchronisation avec d'autres databases para full-text search (en ElasticSearch ) et d'autres types de requêtes qui Firebase n'est pas facile à supporter.

Ce processus doit être aussi proche du temps réel que possible, nous ne pouvons pas exporter un vidage nocturne de la base de données. Firebase JSON ou quelque chose comme ça, à part le fait que ça va devenir assez gros.

Ma première idée était d'exécuter un Node.js qui écoute child_changed , child_added , child_removed etc... de toutes les listes principales, mais cela pourrait devenir un peu fastidieux et serait-il un moyen fiable de synchroniser si le client se reconnecte après un certain temps ?

Mon idée suivante était de maintenir une liste d'événements "éléments modifiés" et d'y écrire à chaque fois qu'un élément est créé/mis à jour, de manière similaire à l'approche File d'attente de travail Firebase exemple. La file d'attente peut contenir le chemin d'accès complet aux données qui ont été modifiées et le travailleur se contente de les consommer et de mettre à jour la base de données locale en conséquence.

Le problème ici est que chaque partie du code qui effectue des mises à jour doit se souvenir d'écrire dans cette file d'attente, sinon les deux systèmes seront désynchronisés. Un code proxy ne devrait pas être trop difficile à écrire cependant.

Quelqu'un d'autre a-t-il fait quelque chose de similaire avec succès ?

5voto

Kato Points 12210

Pour les requêtes de recherche, vous pouvez vous intégrer directement à ElasticSearch ; il n'est pas nécessaire de se synchroniser avec une base de données secondaire. Firebase dispose d'une article de blog sur l'intégration et un lib, Lampe de poche pour que cela soit rapide et sans douleur.

1voto

Val Points 94829

Une autre option consiste à utiliser le logstash-input-firebase Logstash afin d'écouter les modifications apportées à votre ou vos bases de données Firebase en temps réel et de transmettre les données en temps réel à Elasticsearch à l'aide d'un plugin elasticsearch sortie.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X