全部產品
Search
文件中心

ApsaraDB for MongoDB:分區叢集執行個體串連說明

更新時間:Aug 01, 2024

MongoDB分區叢集執行個體分別提供Mongos、Shard和ConfigServer組件單獨的串連地址,以及適用於應用程式串連的高可用ConnectionStringURI地址。本文介紹分區叢集執行個體串連地址的擷取方式和串連說明。

擷取資料庫連接地址

  1. 訪問MongoDB分區叢集執行個體列表,在上方選擇資源群組和地區,然後單擊目標執行個體ID。

  2. 在目標執行個體頁面的左側導覽列,單擊資料庫連接擷取目標節點的串連地址。

串連地址說明

串連地址網路類型

網路類型

說明

私網

  • 專用網路:專用網路是一種隔離的網路環境,安全性和效能均高於傳統的傳統網路。 ApsaraDB for MongoDB執行個體預設提供專用網路串連地址,通過專用網路串連ApsaraDB for MongoDB執行個體可以擷取更高的安全性和效能。

  • 傳統網路:雲端服務在網路上不進行隔離,僅依靠雲端服務自身的安全性群組或白名單策略阻擋非法訪問。新購執行個體不再支援傳統網路,更多說明,請參見【通知】ApsaraDB for MongoDB新購買執行個體不再支援傳統網路

公網

由於通過公網串連執行個體存在一定的安全風險,ApsaraDB for MongoDB執行個體預設未提供公網串連地址。如果您需要通過公網串連ApsaraDB for MongoDB執行個體,可以手動申請公網串連地址,申請方法請參見(可選)申請公網串連地址

串連地址類型

地址類型

說明

Mongos地址

Mongos組件的串連地址,包括主節點(Primary)的串連地址。

說明

日常測試時,僅需串連Mongos組件的任意節點。

Shard地址

Shard組件的串連地址,包括主節點(Primary)、從節點(Secondary)和唯讀節點(ReadOnly)的串連地址。

說明
  • 預設情況下,控制台僅會展示Mongos的串連地址,Shard和ConfigServer的串連地址需要先申請對應節點的串連地址,如何申請,請參見申請Shard或ConfigServer節點串連地址

  • 只有Shard組件中存在唯讀節點時,您才能看到Shard組件的唯讀節點串連地址。

ConfigServer地址

ConfigServer組件的串連地址,包括主節點(Primary)和從節點(Secondary)的串連地址。

說明
  • 預設情況下,控制台僅會展示Mongos的串連地址,Shard和ConfigServer的串連地址需要先申請對應節點的串連地址,如何申請,請參見申請Shard或ConfigServer節點串連地址

  • 僅本地碟版分區叢集執行個體支援申請ConfigServer的串連地址。

ConnectionstringURI地址

ApsaraDB for MongoDB提供了Mongos組件和Shard組件的ConnectionStringURI地址。

推薦生產環境的應用程式通過ConnectionStringURI串連資料庫,用戶端自動將請求發送到Mongos組件的多個節點上,實現負載平衡。Mongos組件的某個節點出現故障時,用戶端能自動進行故障切換,將請求發送到狀態正常的Mongos節點上。

說明

預設情況下,控制台僅會展示Mongos的ConnectionStringURI地址,Shard的ConnectionStringURI地址需要先申請對應節點的串連地址,如何申請,請參見申請Shard串連地址

ConnectionstringURI SRV地址

SRV地址可以簡化叢集的維護和管理,您無需因為增刪Mongos節點而修改串連地址,用戶端可以無感知地與叢集互動,簡化了應用程式的設計和維護。

推薦生產環境的應用程式通過ConnectionStringURI串連資料庫,用戶端自動將請求發送到Mongos組件的多個節點上,實現負載平衡。Mongos組件的某個節點出現故障時,用戶端能自動進行故障切換,將請求發送到狀態正常的Mongos節點上。

重要
  • 預設情況下控制台不顯示SRV地址,如需使用請單擊資料庫連接頁面的申請私網SRV地址申請公網SRV地址

  • 申請公網SRV地址前,您需要先開通Mongos節點的公網地址。通過公網SRV地址串連MongoDB執行個體後,用戶端會自動將請求發送到已開通公網地址的Mongos節點上。

  • SRV地址僅支援雲端硬碟版分區叢集執行個體。

  • 專用網路的私網SRV地址最多關聯20個Mongos節點,因專用網路內DNS解析協議的限制,在超出20個Mongos節點的情況下,超出的節點將不能分擔請求負載。公網SRV地址不受此限制。

各串連地址的格式、參數說明以及樣本如下:

Mongos地址

格式:

<host>:<port>

參數說明:

參數

說明

<host>

Mongos組件中節點的網域名稱資訊

<port>

Mongos組件中節點的連接埠

樣本:

s-bp1c010266f6****.mongodb.rds.aliyuncs.com:3717

Shard地址

格式:

<host>:<port>

參數說明:

參數

說明

<host>

Shard組件中節點的網域名稱資訊

<port>

Shard組件中節點的連接埠

樣本:

s-bp1c010266f6****.mongodb.rds.aliyuncs.com:3717

ConfigServer地址

格式:

<host>:<port>

參數說明:

參數

說明

<host>

ConfigServer組件中節點的網域名稱資訊

<port>

ConfigServer組件中節點的連接埠

樣本:

s-bp1c010266f6****.mongodb.rds.aliyuncs.com:3717

ConnectionstringURI地址

Mongos組件和Shard組件的ConnectionStringURI地址的說明分別如下:

Mongos

重要

推薦生產環境的應用程式通過ConnectionStringURI串連資料庫,用戶端自動將請求發送到Mongos組件的多個節點上,實現負載平衡。Mongos組件的某個節點出現故障時,用戶端能自動進行故障切換,將請求發送到狀態正常的Mongos節點上。

格式:

mongodb://<username>:<password>@<host1>:<port1>,<host2>:<port2>,...,<hostN>:<portN>/<database>[?&authSource=<authenticationDatabase>]

參數

說明

<username>

資料庫帳號的名稱,預設為root。

<password>

資料庫帳號的密碼。

<host>

Mongos組件中節點的網域名稱資訊

<port>

Mongos組件中節點的連接埠

<database>

要訪問的資料庫名稱,預設為admin。

authSource=<authenticationDatabase>(可選)

該參數用於指定資料庫帳號所屬的資料庫。<authenticationDatabase>為鑒權資料庫名稱。如果不配置該參數,<database>會作為鑒權資料庫。

樣本:

資料庫帳號為test,所屬資料庫為admin。

mongodb://test:****@s-bp1c010266f6****.mongodb.rds.aliyuncs.com:3717,s-bp1773180e38****.mongodb.rds.aliyuncs.com:3717/admin

Shard

Shard組件的ConnectionStringURI地址為高可用地址,實現負載平衡及高可用,串連該地址可以執行資料庫的讀寫操作。該地址包含Shard組件中所有節點的地址,建議生產環境的應用程式通過該地址串連執行個體。

重要

生產環境的應用程式建議通過ConnectionStringURI地址串連執行個體,可以確保串連的節點始終為主節點,不會因為主備切換而影響應用的讀寫操作。

格式:

mongodb://<username>:<password>@<host1>:<port1>,<host2>:<port2>,...,<hostN>:<portN>/<database>?replicaSet=<replicaSet_value>[&authSource=<authenticationDatabase>]

參數說明:

參數

說明

<username>

資料庫帳號的名稱,預設為root。

<password>

資料庫帳號的密碼。

<host>

主節點、從節點和唯讀節點的網域名稱資訊

<port>

主節點、從節點和唯讀節點的連接埠

<database>

要訪問的資料庫名稱,預設為admin。

replicaSet=<replicaSet_value>

該參數可以將讀請求發送到複本集執行個體的所有節點。<replicaSet_value>為執行個體高可用串連地址的唯一標識ID。

authSource=<authenticationDatabase>(可選)

該參數用於指定資料庫帳號所屬的資料庫。<authenticationDatabase>為鑒權資料庫名稱。如果不配置該參數,<database>會作為鑒權資料庫。

readPreference=[primary|primaryPreferred|secondary | secondaryPreferred](可選)

該參數可以實現讀寫分離和負載平衡,能夠將寫請求發送到主節點,讀請求隨機發送到從節點和唯讀節點,取值說明如下:

  • readPreference=primary:讀請求僅發送到主節點。

  • readPreference=primaryPreferred:讀請求優先發送到主節點。

  • readPreference=secondary:讀請求僅發送到從節點和唯讀節點。如果從節點和唯讀節點都出現故障,讀請求失敗,不會發送到主節點。

  • readPreference=secondaryPreferred:讀請求優先發送到從節點和唯讀節點。如果從節點和唯讀節點都出現故障,該參數將讀請求發送到主節點。

說明

該參數僅對雲端硬碟版執行個體生效。

readPreferenceTags=<readonly_Tags>(可選)

該參數可以將讀請求優先發送到標籤對應的節點。<readonly_Tags>為唯讀節點的標籤索引值對列表,支援role:electable role:readonly 兩種類型,說明如下:

  • readPreferenceTags=role:electable:優先讀從節點。

  • readPreferenceTags=role:readonly:優先讀唯讀節點。

說明

該參數僅對雲端硬碟版執行個體生效。

雲端硬碟版執行個體可以靈活使用readPreferencereadPreferenceTags參數,通過不同標籤的組合,實現不同的情境需求:

讀請求失敗的處理方法

讀請求發送的節點

參數組合方案

讀請求失敗情況下,讀請求發送到主節點

優先讀主節點

readPreference=primaryPreferred

優先讀從節點和唯讀節點

readPreference=secondaryPreferred

優先讀從節點

readPreference=secondaryPreferred&readPreferenceTags=role:electable

優先讀唯讀節點

readPreference=secondaryPreferred&readPreferenceTags=role:readonly

讀請求失敗情況下,讀請求不發送到主節點

僅讀從節點和唯讀節點

readPreference=secondary

僅讀從節點

readPreference=secondary&readPreferenceTags=role:electable

僅讀唯讀節點

readPreference=secondary&readPreferenceTags=role:readonly

樣本:

mongodb://test:****@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>

參數說明:

參數

說明

mongodb+srv://

連接字串的首碼,表示使用DNS SRV記錄進行服務發現。

<username>

資料庫帳號的名稱,預設為root。

<password>

資料庫帳號的密碼。

<srv-host>

主機名稱。

<database>

要訪問的資料庫名稱,預設為admin。

<option>

其他選擇性參數。

說明

由於SVR串連的SSL選項預設值為true,但分區叢集暫不支援開啟SSL,所以您需要在串連串上添加參數ssl=false。更多選擇性參數的介紹,請參見MongoDB官網文檔

樣本:

資料庫帳號為test,所屬資料庫為admin。

mongodb+srv://test:****@dds-2zef4c23xxxx-srv.mongodb.pre.nosql.aliyuncs.com/admin?ssl=false

登入MongoDB資料庫

  1. 擷取如下資訊:

    • 資料庫連接地址,擷取方法請參見資料庫連接地址

    • 資料庫帳號,初始帳號為root。

      重要

      不建議在生產環境中直接使用root帳號串連資料庫。您可以根據業務需求建立使用者並分配許可權,詳情請參見使用DMS管理MongoDB資料庫使用者

    • 資料庫帳號對應密碼。如果沒有設定或忘記密碼,您可以設定或修改密碼,具體方法請參見重設密碼

    • 要訪問的資料庫。當資料庫帳號為root時,對應的資料庫為admin。

  2. 登入資料庫。您可以選擇以下任意一種方法登入:

常見的串連情境

相關問題