Mongodb

Mongos 連接到副本集

  • January 10, 2013

這是一個非常基本的問題,但我找不到任何答案。我知道您使用 mongos 與分片集合進行互動。但是,如果我有一個未分片的副本集,我該如何設置 mongos 以便我的應用程序可以使用該集中的主副本和輔助副本?甚至有必要使用 mongos 還是讓我的應用程序的 mongo 驅動程序(在這種情況下為 php)連接到集合中的一個伺服器,讓它自動列舉集合中的其他成員並連接到它們?

您可以直接從驅動程序連接到副本集,mongos除非您在分片環境中執行,否則不需要 a。驅動程序通常使用isMaster命令來確定集合的狀態,並會酌情將命令發送到主要和次要(取決於讀取首選項集,如果您使用的是最新版本)。如果主伺服器出現故障,驅動程序還將處理自動故障轉移(當然會有一點延遲)。

一旦有人嘗試分片,他們通常更喜歡連接到mongos集合併讓它管理與集合的通信,正如您從這個請求中看到的那樣。現在,要mongos以這種方式使用,您需要配置分片環境的最少部分,即使您(實際上)只有一個分片。

此外,有時人們會知道他們將不得不在未來進行分片,並從一個分片開始以預期未來的需求,這樣他們除了在配置中添加一個分片之外不需要做任何事情。

一般來說,mongos執行的主要先決條件是config數據庫(以及您的config伺服器)啟動並執行。您傳遞給的連接字元串mongos將是這些config伺服器的列表(並且每次啟動時都應該相同mongos),並且至少有一個(三個中的一個)必須正常執行mongos才能正常執行。

引用自:https://serverfault.com/questions/464178