問題是,即使我只針對連接字符串中副本集的一個節點,mongo-go-driver也總是希望發現并連接其他節點。基本上說我應該connect在連接字符串中添加選項。mongodb://host:27017/authDb?connect=direct我的問題是:這個做法有多好或多壞?為什么 mongo 沒有記錄,這個選項還有其他可用的值嗎?
2 回答

Helenr
TA貢獻1780條經驗 獲得超4個贊
這個做法有多好或多壞?為什么 mongo 沒有記錄,這個選項還有其他可用的值嗎?
正如已接受的答案中所指出的,這記錄在驅動程序文檔中?,F在討論問題的另一部分。
一般來說,在副本集上下文中,您可能希望連接到拓撲,而不是直接連接到特定的副本集成員,但出于管理目的除外。復制旨在提供冗余,并且在發生故障轉移時不建議直接連接到一個成員(即主成員)。
直接連接:客戶端必須能夠連接到任何類型的單個服務器。這包括查詢隱藏的副本集成員,以及連接到未初始化的成員(請參閱 RSGhost)以運行“replSetInitiate”。連接到輔助設備不一定需要設置讀取首選項。當然,輔助設備將拒絕使用 PRIMARY 讀取首選項完成的所有操作,因為未設置 SlaveOk 位,但初始連接本身會成功。驅動程序可以允許直接連接到仲裁器(例如,運行管理命令)。
它只指定它必須能夠這樣做,但沒有指定如何這樣做。MongoDB Go驅動程序并不是目前唯一支持direct
選項方法的驅動程序,還有.NET/C#和Ruby。
目前有一個開放的 PR規范來統一行為。未來,所有駕駛員都將采用相同的方式建立直接連接。
- 2 回答
- 0 關注
- 126 瀏覽
添加回答
舉報
0/150
提交
取消