30

私は分散で動作するアプリケーションを開発しており、分散サーバー間で共有する必要がある SQLite データベースを持っています。私がserverAにいて、sqlite行を変更した場合、この変更は他のサーバーに即座に反映される必要がありますが、サーバーがオフラインでオンラインになった場合、他のサーバーと同じすべての情報を更新する必要があります。

小さな SQLite データベースで HA サービスを開発しようとしています。

MongoDB や ReThinkDB のようなものを考えています。これは、レプリケーションが正常に機能し、サーバーとは独立してオンラインでデータを取得しているためです。

サーバー間でデータを共有するためのライブラリまたはその他の SQL 方法論はありますか?

前もって感謝します。

4

4 に答える 4

18

Raft コンセンサス プロトコルを使用して、SQLite データベースを複製しました。システムは次の場所にあります。

https://github.com/rqlite/rqlite

于 2014-09-03T17:33:46.473 に答える
7

以下にいくつかのオプションを示します。

ライトレプリカ:

単一のマスター (書き込み可能なノード) と 1 つまたは複数のレプリカ (読み取り専用ノード) を使用して、SQLite3 データベースのマスター/スレーブ レプリケーションをサポートします。

デバイスがオフラインになってからオンラインになった場合、セカンダリ/スレーブ データベースはプライマリ/マスター データベースで増分的に更新されます。

ライトシンク:

マルチマスター レプリケーションが実装されているため、デバイスがオフラインの場合でも、任意のノードのデータベースに書き込むことができます。

両方で、次のように、変更された URI を使用してデータベースを開きます。

  「file:/path/to/app.db?replica=master&bind=tcp://0.0.0.0:4444」</pre>

エアゴライト:

ブロックチェーンベースで、最高レベルのセキュリティを備えています。リソース使用量の少ない分散コンセンサスによって保護された不変のリレーショナル データを格納します。

開示:私はこれらのソリューションの作成者です

于 2015-11-15T22:16:20.517 に答える
6

アプリケーションにSymmetricDSを埋め込むことで、SQLite データベースを同期できます。不定期に接続されるクライアントをサポートするため、サーバーがオンラインになったときに変更をキャプチャして同期します。いくつかの異なるデータベース プラットフォームをサポートし、ライブラリまたはスタンドアロン サービスとして使用できます。

于 2013-04-17T20:52:59.397 に答える
1

SQLite や他のいくつかのデータベース タイプをサポートするCopyCatを使用することもできます。

于 2014-07-04T15:37:00.007 に答える