我想开始将Node.js用于我将要开展的项目。
我在电动汽车中有流媒体位置信息,我想将其本地存储在汽车中的一个小型数据库中,并在此连接启动时通过(脆弱的)3G连接将其同步到服务器一个大数据库。所以:
Car Os 3G Server OS Data stream ---> ------ ---> --------- Node.js Node.js MongoDB MongoDB Small DB Large DB
我担心的部分是如何通过非连续的3G连接将本地数据库同步到服务器数据库。什么Node.js模块适合这项工作?
感谢您的建议!
答案 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命令。
请告诉我们您的项目进展情况,因为它看起来非常有趣。