全部产品
阿里云办公

分片集群连接说明

更新时间:2017-12-19 15:22:11

MongoDB分片集群(Sharded Cluster)通过将数据分散存储到多个分片(Shard)上,来实现高可扩展性。实现分片集群时,MongoDB引入Config Server来存储集群的元数据,引入mongos作为应用访问的入口,mongos从Config Server读取路由信息,并将请求路由到后端对应的Shard上。

云数据库MongoDB版为每个mongos都单独提供了连接地址,同时支持用Connection String的方式连接集群,实现负载均衡及高可用。

  • 用户访问mongos跟访问单个mongod类似。
  • 所有mongos是对等关系,用户访问分片集群可通过任意一个或多个mongos。
  • mongos本身是无状态的,可任意增删。当前一个集群最大支持扩展是32个mongos,最少需保有2个mongos以实现高可用。
  • 访问分片集群时,最好将应用负载均匀的分散到多个mongos上。

获取连接地址

  1. 登录MongoDB管理控制台

  2. 单击实例ID或者查看进入实例基本信息页面,单击右侧数据库连接,打开界面如下图所示。

    str2

    如上图所示,您可以获取各种网络类型下的每个mongos的连接地址,以及为用户直接生成的Connection String URI。

连接说明

  • 云数据库MongoDB分片集群实例每个mongos都提供了连接地址,日常测试或查询时可直接连接某个mongos的地址实现读写操作,但线上应用需通过Connection String的方式连接集群,以实现高可用。

    str3

  • 从控制台获取的connection string将包含以下内容:

    1. mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]
    • mongodb://:前缀,代表这是一个Connection String。
    • username:password@:如果启用了鉴权,需要指定用户密码。
    • hostX:portX:多个mongos的地址列表。
    • /database:鉴权时,用户帐号所属的数据库。
    • ?options:指定额外的连接选项。
  • 所有MongoDB官方Driver都支持通过Connection String来连接,通过上述方式连接分片集群时,客户端会自动将请求分散到多个mongos上,以实现负载均衡。同时,当URI里mongos数量在2个及以上时,或者有mongos故障时,客户端能自动进行failover,将请求都分散到状态正常的mongos上。您可以参阅程序代码连接示例来实现连接操作。

本文导读目录