1

作業中のプロジェクトでNode.jsの使用を開始したいと思います。

電気自動車に位置情報をストリーミングしています。これを車内の小さなデータベースにローカルに保存し、この接続が確立されている場合は、(脆弱な)3G接続を介して大規模なDBを備えたサーバーに同期したいと思います。 。それで:

                     CarOs3GサーバーOS
データストリーム--->---------> ---------
                     Node.js Node.js
                     MongoDB MongoDB
                     スモールDBラージDB

私が心配しているのは、非連続3G接続を介してローカルDBをサーバーDBに同期する方法です。このジョブに最適なNode.jsモジュールはどれですか?

アドバイスありがとうございます!

4

2 に答える 2

0

CouchDBはこの仕事に適したツールになると思います。同期機能が組み込まれており、オフライン/オンラインのWebアプリとモバイルアプリを同期するためによく使用されます。ただし、すぐに使用できる「bigdb」/「smalldb」アーキテクチャをサポートしているかどうかはわかりません。

ウィキペディアから:

CouchDBは、双方向レプリケーション(または同期)とオフライン操作を念頭に置いて設計されました。つまり、複数のレプリカが同じデータの独自のコピーを持ち、それを変更して、後でそれらの変更を同期することができます。

これが少しお役に立てば幸いです。

于 2012-10-29T19:56:26.380 に答える
0

MongoDB にも、データベース間のレプリケーションが組み込まれています。

1 つのメンバーが長時間オフラインになった場合のデータベースと同様に、(無信号時間に記録された) データが同期できることを確認する必要があります。

MongoDB では、論理書き込みの履歴データを格納するoplogと呼ばれるキャップ付きの内部コレクションを使用します。

デフォルトでは、MongoDB は使用可能な空きディスク容量の 5% を oplog に割り当てます[1]。これは、サーバー DB での最後の操作の時間と、同期がオンになっているサーバーを起動する車の DB での最初の操作の時間との間にレプリケーションが発生するために、この量の oplog の「時間」があることを意味します。

もちろん、大量のデータを送信したり、多くの車を持ちたい場合は、 oplog のサイズを変更できます。

したがって、このオプションは、mongodb サーバーが相互に接続できる限り、それらにデータを挿入するだけで同期が行われることを意味します。

要件によっては、サーバー データベース ポートを全世界に開放したままにしたくない場合があります。これは、認証が行われるか、ホスト名が制限されることを意味します (ダイナミック DNS を使用)。

ここで役立つ Node モジュールに関しては、 mongooplogコマンドを使用してみることしかできません 。

そして、あなたのプロジェクトが非常に興味深いと思われるので、進捗状況を教えてください。

于 2012-11-05T11:46:41.730 に答える