首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> DB2 資料庫 >> DB2 教學

MongoDB 腳本自動連線 Replica Set 並識別 Primary 節點

     編輯:DB2 教學

MongoDB Replica Set 連線機制簡介

現代 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

關鍵階段說明

  1. 種子節點連線:先連上任一種子節點 (vm1) 獲取集群拓撲資訊。
  2. 拓撲更新:根據回傳的成員列表更新內部節點對應表。
  3. 全成員健檢:嘗試連線所有成員確認可用性。
  4. Primary 識別:確認 vm1:27017 為目前 Primary。
  5. 監控啟動:背景啟動 Replica Set 監控器,持續偵測拓撲變更。

腳本開發最佳實踐

  • 在腳本開頭使用 db.isMaster() 驗證是否連至 Primary (寫入操作需求)。
  • 讀取操作可配合 readPreference 設定為 secondaryPreferred 分散負載。
  • 種子節點列表建議包含 2-3 個不同可用區的節點,提高連線成功率。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved