在连接MongoDB分片集群实例时,需要先获取实例的连接信息。包括实例的公网连接地址、内网连接地址、ConnectionStringURI以及数据库账户名等信息。

分片集群实例包含Mongos(服务代理)、Shard(分片服务器)、ConfigServer三个组件。Config Server组件存储集群的元数据,Mongos节点是应用访问的入口,Mongos从Config Server读取路由信息,并将请求路由到后端对应的Shard上。分片集群实例通过将数据分散存储到多个Shard(分片服务器)上,实现高可扩展性。

分片集群实例为每个Mongos节点都单独提供了内网连接地址、公网连接地址、内网ConnectionStringURI以及公网ConnectionStringURI,您可以登录任意一个Mongos节点的公网或者内网连接地址实现数据库读写操作。您也可以在MongoDB客户端中,通过公网ConnectionStringURI或者内网ConnectionStringURI连接实例,从而对数据库进行读写等操作。

说明
  • 当您为分片集群实例加添加Mongos节点时,系统自动生成内网连接地址以及内网ConnectionStringURI。
  • Mongos节点的公网连接地址,需要您通过控制台来申请,请参见。公网连接地址生成时,系统同步生成公网ConnectionStringURI。
  • 您可以通过控制台或者API修改Mongos节点的公网和内网连接地址。

    当您不需要Mongos节点的公网连接地址时,可以将其释放掉。释放公网连接地址的时,公网ConnectionStringURI被同步释放掉。

当您想要通过公网或是内网登录数据库时,您都需要先获取以下实例连接信息:

  • 实例的连接地址,即任何一个Mongos节点的公网或者内网连接地址。
  • 连接端口,MongoDB使用固定端口号3717。
  • 数据库名,首次连接实例使用的的数据库名为admin。
  • 账号,实例初始连接账户固定为root。
  • 账号密码,实例的初始账户root的连接密码是您创建实例时指定的密码。

    若忘记密码,可以通过重置密码来设置新密码。

获取实例连接信息

  1. 登录MongoDB管理控制台。
  2. 在控制台左上方选择地域。
  3. 单击目标实例ID。

    您也可以单击目标实例右侧的 > 管理

  4. 在实例基本信息页面,单击左侧导航栏中的数据库连接
    您可以看到分片集群实例中所有Mongos节点的内网或者公网连接地址( 域名信息即连接地址)。如下图标号1、3所示,分片集群实例有三个Mongos节点,每个节点的连接地址均不相同,但连接端口都是3717,通过任何一个Mongos节点均可登录数据库。

    说明 公网连接地址需要您自行申请,若未申请则不显示。

获取实例ConnectionStringURI

所有MongoDB官方Driver都支持通过ConnectionStringURI连接分片集群实例,通过ConnectionStringURI连接分片集群时,客户端自动将请求分散到多个Mongos上,实现负载均衡。同时,当URI里Mongos数量在2个及以上时,或者某个Mongos出现故障时,客户端能自动进行故障切换,将请求分散到状态正常的Mongos上。您可以参阅程序代码连接示例来实现连接操作。

  1. 登录MongoDB管理控制台。
  2. 在控制台左上方选择地域。
  3. 单击目标实例ID。

    您也可以单击目标实例右侧的 > 管理

  4. 在实例基本信息页面,单击左侧导航栏中的数据库连接

    您可以看到分片集群实例中所有Mongos节点的连内网ConnectionStringURI和公网ConnectionStringURI。如上图标号2、4所示。

    ConnectionStringURI包含以下内容:

    mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]

    • mongodb://:前缀,代表这是一个Connection String。
    • username:password@:如果启用了鉴权,需要指定用户密码。
    • hostX:portX:多个mongos的地址列表。
    • /database:鉴权时,用户帐号所属的数据库。
    • ?options:指定额外的连接选项。