mongodb 連接到復制集
mongodb://node1,node2,node3.../database?[options]
mongodb 連接到分片集
mongodb://mongos1,mongos2,mongos3.../database?[options]
使用 mongo+srv
通過域名解析得到所有的 mongos 或 節點的地址, 而不是把這些寫在連接字符串中.
mongodb+srv://server.example.com
mongo+srv://
是 MongoDB 連接字符串中的一種格式,用于指示 MongoDB 驅動程序使用 DNS SRV 記錄來查找 MongoDB 集群的地址信息。通過使用 mongo+srv://
連接字符串,您可以只提供集群的域名而不是具體的主機名和端口號,MongoDB 驅動程序將自動查找 DNS 中的 SRV 記錄來獲取集群的連接信息。
要配置域名以供使用 mongo+srv://
連接字符串,您需要在 DNS 服務器中設置相應的 SRV 記錄。以下是一個示例說明如何設置 SRV 記錄:
假設您有一個 MongoDB 集群,域名為 example.com,并且集群中有三個節點:node1.example.com、node2.example.com 和 node3.example.com。您可以在 DNS 服務器中為 example.com 添加一個 SRV 記錄,指向您的 MongoDB 集群。
示例 SRV 記錄的格式如下:
_mongodb._tcp.example.com. IN SRV <priority> <weight> <port> <target>
_mongodb._tcp.example.com.
:SRV 記錄的名稱,包括服務類型和域名。IN
: 記錄的類別,表示 Internet 類型。SRV
: 記錄的類型,表示服務定位記錄。<priority>
: 優先級,通常設置為 0。<weight>
: 權重,通常設置為 0。<port>
: MongoDB 服務器的端口號,通常設置為 27017。<target>
: 目標主機名,即 MongoDB 服務器的主機名。
假設您將三個節點分別設置為優先級為 0、權重為 0、端口為 27017,并且主機名分別為 node1.example.com
、node2.example.com
和 node3.example.com
,則您可以在 DNS 中添加如下的 SRV 記錄:
_mongodb._tcp.example.com. IN SRV 0 0 27017 node1.example.com.
_mongodb._tcp.example.com. IN SRV 0 0 27017 node2.example.com.
_mongodb._tcp.example.com. IN SRV 0 0 27017 node3.example.com.
添加完 SRV 記錄后,就可以在 MongoDB 連接字符串中使用 mongo+srv://example.com
來連接您的 MongoDB 集群了。MongoDB 驅動程序會自動查找 DNS 中的 SRV 記錄,并使用其中的地址信息來連接集群。
阿里云配置 SRV 記錄
記錄類型選擇 SRV
記錄值配置類似:
0 0 27017 node1.example.com
阿里云官方文檔 - 域名解析 SRV 記錄設置方法