2012-10-29 31 views
1

我想开始使用Node.js的一个项目,我会努力。如何通过与Node.js的脆弱连接处理数据流?

我在电动汽车中有流式位置信息,我想将它存储在汽车的一个小型数据库中,并通过(脆弱的)3G连接(在连接启动时)与服务器同步与一个大型数据库。所以:

 
        Car Os 3G Server OS 
Data stream ---> ------ ---> --------- 
        Node.js   Node.js 
        MongoDB   MongoDB 
        Small DB  Large DB 

,我很担心的是如何同步的本地数据库服务器DB通过非连续的3G连接的部分。什么Node.js模块是完美的工作?

谢谢您的建议!

回答

0

我相信CouchDB会是一个很好的工具。它内置了同步功能,通常用于同步离线/在线Web应用程序和移动应用程序。尽管如此,我不确定它支持“大分贝”/“小分贝”架构。

Wikipedia

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

希望这可以帮助你一点。

+0

谢谢你的提示,我会看它。通过脆弱的连接是否存在_manual data streaming_的最佳实践? – sprijk

0

MongoDB以及内置的数据库之间的复制。

与任何数据库,当一个成员的很长一段时间处于脱机状态,你需要确保数据(这是记录在无信号时),就能同步。

在MongoDB使用封端​​称为oplog,其存储的逻辑写入的历史数据的内部集合。

默认情况下,MongoDB会将5%的可用磁盘空间分配给oplog [1]。这意味着你将有OPLOG“时间”有关服务器数据库最后一次操作的时间和上车DB先说展位的服务器,在那里同步上之间发生的复制这一数额。

当然,如果你想发送大量的数据或有很多车,你可以change the size of the oplog

因此,此选项将意味着,只要你的MongoDB的服务器可以连接到对方你只需要插入数据给他们,他们会为你做的同步化。

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

在节点模块,这将有助于在这里,我将无法帮助,但使用mongooplog命令会尽力条款。

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

+0

感谢您的信息!在整个开发过程中,我肯定会研究并在此发布一些评论。 – sprijk

+0

不用担心。但关于评论只是发布像博客文章的链接。请记住,这不是一个论坛。 StackOverflow具有Q和A格式。 –