Mongodb
Mongos 連接到副本集
這是一個非常基本的問題,但我找不到任何答案。我知道您使用 mongos 與分片集合進行互動。但是,如果我有一個未分片的副本集,我該如何設置 mongos 以便我的應用程序可以使用該集中的主副本和輔助副本?甚至有必要使用 mongos 還是讓我的應用程序的 mongo 驅動程序(在這種情況下為 php)連接到集合中的一個伺服器,讓它自動列舉集合中的其他成員並連接到它們?
您可以直接從驅動程序連接到副本集,
mongos
除非您在分片環境中執行,否則不需要 a。驅動程序通常使用isMaster
命令來確定集合的狀態,並會酌情將命令發送到主要和次要(取決於讀取首選項集,如果您使用的是最新版本)。如果主伺服器出現故障,驅動程序還將處理自動故障轉移(當然會有一點延遲)。一旦有人嘗試分片,他們通常更喜歡連接到
mongos
集合併讓它管理與集合的通信,正如您從這個請求中看到的那樣。現在,要mongos
以這種方式使用,您需要配置分片環境的最少部分,即使您(實際上)只有一個分片。此外,有時人們會知道他們將不得不在未來進行分片,並從一個分片開始以預期未來的需求,這樣他們除了在配置中添加一個分片之外不需要做任何事情。
一般來說,
mongos
執行的主要先決條件是config
數據庫(以及您的config
伺服器)啟動並執行。您傳遞給的連接字元串mongos
將是這些config
伺服器的列表(並且每次啟動時都應該相同mongos
),並且至少有一個(三個中的一個)必須正常執行mongos
才能正常執行。