2012-10-29 78 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格式。 –