現代 MongoDB 驅動程式與 Shell 已支援直接透過 Replica Set 名稱與種子節點列表自動發現並連線至 Primary 節點,無需手動指定主節點位址。這對編寫高可用性腳本至關重要。
mongo --host rs1/vm1:27017,vm3:27017,vm4:27017 db_name
rs1:Replica Set 名稱vm1:27017,vm3:27017,vm4:27017:種子節點列表 (至少一個可達即可)db_name:預設切換的資料庫執行後將輸出類似以下資訊,展示驅動程式自動發現拓撲並切換至 Primary 的過程:
Thu Dec 12 16:44:48.227 successfully connected to seed vm1:27017 for replica set rs1
Thu Dec 12 16:44:48.228 changing hosts to { 0: "vm1:27017", 1: "vm4:27017", 2: "vm3:27017" } from rs1/
Thu Dec 12 16:44:48.228 trying to add new host vm1:27017 to replica set rs1
Thu Dec 12 16:44:48.229 successfully connected to new host vm1:27017 in replica set rs1
Thu Dec 12 16:44:48.229 trying to add new host vm3:27017 to replica set rs1
Thu Dec 12 16:44:48.232 successfully connected to new host vm3:27017 in replica set rs1
Thu Dec 12 16:44:48.232 trying to add new host vm4:27017 to replica set rs1
Thu Dec 12 16:44:48.234 successfully connected to new host vm4:27017 in replica set rs1
Thu Dec 12 16:44:48.240 Primary for replica set rs1 changed to vm1:27017
Thu Dec 12 16:44:48.247 replica set monitor for replica set rs1 started, address is rs1/vm1:27017,vm3:27017,vm4:27017
Thu Dec 12 16:44:48.247 [ReplicaSetMonitorWatcher] starting
db.isMaster() 驗證是否連至 Primary (寫入操作需求)。readPreference 設定為 secondaryPreferred 分散負載。