云數據庫MongoDB副本集實例提供了主從節點和只讀節點的單獨連接地址,以及用于應用程序連接的高可用ConnectionStringURI和ReadOnly ConnectionStringURI地址。本文介紹副本集實例連接地址的獲取方式及連接說明。
連接地址說明
如何選擇連接地址
生產環境下,建議通過ConnectionStringURI地址連接實例以實現負載均衡和高可用。在具有只讀節點的情況下,建議僅有讀操作的應用程序通過ReadOnly ConnectionStringURI地址連接實例。由于主備切換可能導致節點角色變化,不建議通過單節點連接地址連接實例。
連接地址類型
地址類型 | 說明 |
ConnectionStringURI地址 | ConnectionStringURI地址是實現負載均衡及高可用的地址,該地址包含實例所有節點的地址,連接該地址可以執行數據庫的讀寫操作。 重要
|
ConnectionstringURI SRV地址 | SRV地址可以簡化集群的維護和管理,您無需因為增刪節點而修改連接地址,客戶端可以無感知地與集群交互,簡化了應用程序的設計和維護。 推薦生產環境的應用程序通過ConnectionStringURI連接數據庫,客戶端自動將請求發送到實例的多個節點上,實現負載均衡。當某個節點出現故障時,客戶端能自動進行故障切換,將請求發送到狀態正常的節點上。 重要
|
ReadOnly ConnectionStringURI地址 | ReadOnly ConnectionStringURI地址只包含實例所有只讀節點的地址,連接該地址會將讀請求發送到只讀節點。 說明
|
Primary地址 | 主節點的連接地址,連接該地址可以執行數據庫的讀寫操作。 重要 不建議在生產環境的應用程序通過該地址連接實例。當實例觸發主備切換后,主節點地址會發生變化,您需要連接新的主節點確保讀寫操作不受影響。 |
Secondary地址 | 從節點的連接地址,連接該地址僅能執行數據庫的讀操作。 重要 不建議在生產環境的應用程序通過該地址連接實例。當實例觸發主備切換后,從節點可能會升級為主節點,主節點地址支持寫操作,從而帶來數據與權限的安全問題。 |
ReadOnly地址 | 只讀節點的連接地址,連接該地址僅能執行數據庫的讀操作。 說明 該地址僅在實例中存在只讀節點時顯示。 |
連接地址格式說明
ConnectionStringURI地址
格式:
mongodb://<username>:<password>@<host1>:<port1>,<host2>:<port2>,...,<hostN>:<portN>/<database>?replicaSet=<replicaSet_value>[&authSource=<authenticationDatabase>][&readPreference=<readPreference_value>][&readPreferenceTags=<readonly_Tags>]
參數說明:
參數 | 說明 |
| 數據庫賬號的名稱,默認為root。 |
| 數據庫賬號的密碼。 |
| 主節點、從節點和只讀節點的域名信息。 |
| 主節點、從節點和只讀節點的端口。 |
| 要訪問的數據庫名稱,默認為admin。 |
| 該參數可以將讀請求發送到副本集實例的所有節點。 |
| 該參數用于指定數據庫賬號所屬的數據庫。 |
| 該參數可以實現讀寫分離和負載均衡,能夠將寫請求發送到主節點,將讀請求發送到參數指定節點,取值說明如下:
說明 當讀請求發送到從節點和只讀節點時,可能會出現負載不均的情況,如果需要進一步指定節點,請設置參數readPreferenceTags。 |
| 該參數可以將讀請求優先發送到標簽對應的節點。通常與參數readPreference一起使用,與
|
MongoDB實例可以靈活使用readPreference
和readPreferenceTags
參數,通過不同標簽的組合,實現不同的場景需求:
讀請求主節點響應策略 | 讀請求發送的節點 | 參數組合方案 |
讀請求失敗情況下,讀請求發送到主節點 | 優先讀主節點 |
|
優先讀從節點和只讀節點 |
| |
優先讀從節點 說明 如果從節點故障,讀請求發送到主節點。 |
| |
優先讀只讀節點 說明 如果只讀節點故障,讀請求發送到主節點。 |
| |
讀請求失敗情況下,讀請求不發送到主節點 | 僅讀從節點和只讀節點 |
|
僅讀從節點 說明 如果從節點故障,讀取操作失敗。 |
| |
僅讀只讀節點 說明 如果只讀節點故障,讀取操作失敗。 |
|
示例:
mongodb://root:****@dds-bp19f409d7512****.mongodb.rds.aliyuncs.com:3717,dds-bp19f409d7512****.mongodb.rds.aliyuncs.com:3717/admin?replicaSet=mgset-6108****
ConnectionstringURI SRV地址
格式:
mongodb+srv://<username>:<password>@<srv-host>/<database>?<options>
參數說明:
參數 | 說明 |
| 連接字符串的前綴,表示使用DNS SRV記錄進行服務發現。 |
| 數據庫賬號的名稱。 |
| 數據庫賬號的密碼。 |
| 主機名。 |
| 要訪問的數據庫名稱,默認為admin。 |
| 其他可選參數。 說明 SVR連接的SSL選項默認值為true,如果您不需要使用SSL加密連接,需要在連接串上添加參數 |
示例:
數據庫賬號為test,所屬數據庫為admin。
mongodb+srv://test:****@dds-bp19215393a0****-srv.mongodb.nosql.aliyuncs.com/admin?ssl=false
ReadOnly ConnectionStringURI地址
格式:
mongodb://<username>:<password>@<host1>:<port1>,<host2>:<port2>,...,<hostN>:<portN>/<database>?readPreference=secondary&readPreferenceTags=role:readonly&replicaSet=<replicaSet_value>[&authSource=<authenticationDatabase>]
參數說明:
參數 | 說明 |
| 數據庫賬號的名稱,默認為root。 |
| 數據庫賬號的密碼。 |
| 只讀節點的域名信息。 |
| 只讀節點的端口。 |
| 要訪問的數據庫名稱,默認為admin。 |
| 該參數可以將讀請求發送到只讀節點。 |
| 該參數可以將讀請求發送到副本集實例的所有節點。 |
| 該參數用于指定數據庫賬號所屬的數據庫。 |
示例:
mongodb://root:****@dds-bp19f409d7512****.mongodb.rds.aliyuncs.com:3717/admin?readPreference=secondary&readPreferenceTags=role:readonly&replicaSet=mgset-6108****
Primary地址
格式:
<host>:<port>
參數說明:
參數 | 說明 |
| 主節點的域名信息。 |
| 主節點的端口。 |
示例:
dds-bp19f409d7512****.mongodb.rds.aliyuncs.com:3717
Secondary地址
格式:
<host>:<port>
參數說明:
參數 | 說明 |
| 從節點的域名信息。 |
| 從節點的端口。 |
示例:
dds-bp19f409d7512****.mongodb.rds.aliyuncs.com:3717
ReadOnly地址
格式:
<host>:<port>
參數說明:
參數 | 說明 |
| 只讀節點的域名信息。 |
| 只讀節點的端口。 |
示例:
dds-bp19f409d7512****.mongodb.rds.aliyuncs.com:3717
連接地址網絡類型
網絡類型 | 說明 |
私網 |
|
公網 | 由于通過公網連接實例存在一定的安全風險,云數據庫MongoDB實例默認未提供公網連接地址。如果您需要公網連接可手動申請,申請方法請參見(可選)申請公網連接地址。 |
獲取數據庫連接地址
訪問MongoDB副本集實例列表,在上方選擇資源組和地域,然后單擊目標實例ID。
在目標實例頁面的左側導航欄,單擊數據庫連接。
登錄MongoDB數據庫
獲取如下信息:
數據庫連接地址,獲取方法請參見數據庫連接地址。
數據庫賬號,初始賬號為root。
說明不建議在生產環境中直接使用root賬號連接數據庫。您可以創建用戶并分配權限,詳情請參見使用DMS管理MongoDB實例的賬號。
數據庫賬號對應密碼。如果沒有設置或忘記密碼,您可以設置或修改密碼,具體方法請參見(可選)重置密碼。
要訪問的數據庫。當數據庫賬號為root時,對應的數據庫為admin。
登錄數據庫。您可以選擇以下任意一種方法登錄: