如何通过与Node.js的脆弱连接处理数据流?

时间:2012-10-29 18:37:54

标签: node.js mongodb

我想开始将Node.js用于我将要开展的项目。

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

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

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

感谢您的建议!

2 个答案:

答案 0 :(得分:0)

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

来自Wikipedia

  

CouchDB设计有双向复制(或   同步)和离线操作的想法。这意味着多重   副本可以拥有自己的相同数据副本,修改它,以及   然后在以后同步这些更改。

希望这可以帮到你一点。

答案 1 :(得分:0)

MongoDB也有数据库之间的内置复制。

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

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

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

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

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

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

就可以提供帮助的Node模块而言,我将无法提供帮助,但尝试使用mongooplog命令。

请告诉我们您的项目进展情况,因为它看起来非常有趣。