2014-09-29 57 views
1

我的mongo數據庫有一個主節點和兩個輔助節點。寫入mongo數據庫副本集:編寫時照顧主要?

我必須小心,在編寫時哪個節點是主節點? 或者,mongo db是否會自動將寫操作從輔助節點重定向到主節點?

類似的問題在這裏討論,但我的問題得到了沒有回答顯然有: In a primary-secondary Mongo db set if you accidentally write to a secondary would it reflect in primary it gets routed to primary

回答

2

這真的是所有關於你如何配置你的連接字符串到您的副本設置和驅動程序是如何能夠「發現「成員正確。

爲了具體說明在引用問題上所做的陳述,不可能寫入輔助,因爲只寫入到集合中的主節點。如果主節點發生故障,則需要選出一個新的主節點。在舉行選舉的這段時間內,寫作行動將會由於目前沒有主要服務對象而造成失敗

至於「如何」的驅動程序確定哪個是當前「主要」的具體機制,在meta spec for driver implementations有更多的細節。

但是一般情況下,只要您指定「足夠」的可能主機聯繫副本集(並且它們都是三個節點的好例子),那麼驅動程序就能夠「檢查「的成員,並確定哪一個是」主要「,並可寫入。

因此,「故障轉移」是副本集配置的一部分,「檢測」由驅動程序完成,可以與「至少一個節點」對話並要求返回哪個節點是當前主節點,這樣就可以用於未來的寫入操作。

+0

摘要:重定向到正確的節點是mongodb驅動程序的工作 – 2014-10-21 19:23:21

2

有如何設置了幾個方面看看這個鏈接:MongoDB Replica Members

在最後你需要有配置服務器上運行(mongos),並且將透明地重定向您的要求爲讀/寫取決於設置。但是,也可以在應用程序級別執行此操作。