it-swarm.com.de

Methode zum Replizieren der SQLite-Datenbank auf mehreren Servern

Ich entwickle eine Anwendung, die verteilt funktioniert, und ich habe eine SQLite-Datenbank, die von verteilten Servern gemeinsam genutzt werden muss. Wenn ich in serverA bin und die sqlite-Zeile ändere, muss diese Änderung sofort auf den anderen Servern erfolgen. Wenn ein Server jedoch offline war und dann online geschaltet wurde, muss er alle anderen Server gleich aktualisieren.

Ich versuche, einen HA-Dienst mit kleinen SQLite-Datenbanken zu entwickeln.

Ich denke an so etwas wie MongoDB oder ReThinkDB, aufgrund der Replikation funktioniert es gut und ich habe Daten unabhängig vom Server online, die ich hatte.

Es gibt eine Bibliothek oder eine andere SQL-Methode, um Daten zwischen Servern auszutauschen.

Danke im Voraus.

15
ManuParra

Ich habe das Raft-Konsensprotokoll verwendet, um meine SQLite-Datenbank zu replizieren. Sie finden das System hier:

https://github.com/otoolep/rqlite

8
Philip O'Toole

Sie können LiteReplica verwenden:

Es unterstützt die Master-Slave-Replikation für SQLite3-Datenbanken unter Verwendung eines einzelnen Masters (beschreibbarer Knoten) und eines oder mehrerer Replikate (schreibgeschützter Knoten).

Wenn ein Gerät offline ging und dann online ging, werden die sekundären/Slave-Datenbanken inkrementell mit den primären/Master-Datenbanken aktualisiert.

Oder LiteSync :

Es implementiert eine Multi-Master-Replikation, sodass wir in jedem Knoten auf die Datenbank schreiben können, auch wenn das Gerät offline ist.

In beiden Fällen öffnen wir die Datenbank mit einem modifizierten URI wie folgt:

 "File: /path/to/app.db? Replica = master & bind = tcp: //0.0.0.0: 4444"

Offenlegung: Ich bin der Autor beider Lösungen

6
Bernardo Ramos

Sie können SQLite-Datenbanken synchronisieren, indem Sie SymmetricDS in Ihre Anwendung einbetten. Es werden gelegentlich verbundene Clients unterstützt, sodass Änderungen erfasst und synchronisiert werden, wenn ein Server online ist. Es unterstützt verschiedene Datenbankplattformen und kann als Bibliothek oder als eigenständiger Dienst verwendet werden.

3
Eric Long

Sie können auch CopyCat verwenden, die SQLite sowie einige andere Datenbanktypen unterstützen.

1
jonneve