1

我想开始将 Node.js 用于我将从事的项目。

我在电动汽车中有流式位置信息,我想将其本地存储在汽车中的小型数据库中,并通过(脆弱的)3G 连接将其同步到具有大型数据库的服务器. 所以:

                     车载操作系统 3G 服务器操作系统
数据流 ---> ------ ---> ---------
                     节点.js 节点.js
                     MongoDB的
                     小数据库 大数据库

我担心的部分是如何通过非连续 3G 连接将本地数据库同步到服务器数据库。什么 Node.js 模块最适合这项工作?

感谢您的意见!

4

2 回答 2

0

我相信 CouchDB 将是完成这项工作的好工具。它具有内置同步功能,通常用于同步离线/在线 Web 应用程序和移动应用程序。我不确定它是否支持开箱即用的“big db”/“small db”架构。

来自维基百科

CouchDB 在设计时考虑了双向复制(或同步)和离线操作。这意味着多个副本可以拥有自己的相同数据副本,对其进行修改,然后在以后同步这些更改。

希望这可以帮助你一点。

于 2012-10-29T19:56:26.380 回答
0

MongoDB 还具有数据库之间的内置复制功能。

与任何数据库一样,当一个成员长时间离线时,您需要确保数据(在无信号时间记录)能够同步。

在 MongoDB 中,使用一个名为oplog的内部集合来存储逻辑写入的历史数据。

默认情况下,MongoDB 会将 5% 的可用磁盘空间分配给 oplog [1]。这意味着在服务器数据库上的最后一次操作时间和 Car DB 上的第一个同步启动服务器的时间之间,您将拥有这么多的 oplog '时间' 进行复制。

当然如果你想发送大量数据或者有很多车,你可以改变 oplog 的大小

因此,此选项意味着只要您的 mongodb 服务器可以相互连接,您只需向它们插入数据,它们就会为您进行同步。

根据您的要求,您可能不想让服务器数据库端口对世界开放。这意味着身份验证将到位或对主机名进行限制(使用动态 DNS)。

就此处有帮助的 Node 模块而言,我无能为力,只能尝试使用 mongooplog命令。

请让我们知道您的项目进展如何,因为它看起来很有趣。

于 2012-11-05T11:46:41.730 回答