Todos os produtos
Search
Central de documentação

ApsaraDB for MongoDB:Conexão de instância de conjunto de réplicas

Última atualização: Aug 25, 2026

Uma instância de conjunto de réplicas do ApsaraDB for MongoDB fornece endpoints separados para seus nós primários, secundários e somente leitura, além de ConnectionStringURI, ConnectionStringURI SRV e ReadOnly ConnectionStringURI de alta disponibilidade para conexões de aplicativos. Este tópico explica como obter esses endpoints e conectar-se à sua instância.

Descrição do endereço de conexão

Seleção de endpoint

Em ambiente de produção, conecte-se à instância usando o endereço ConnectionStringURI ou ConnectionStringURI SRV para garantir balanceamento de carga e alta disponibilidade. Se a instância tiver nós somente leitura, use o endereço ReadOnly ConnectionStringURI para conectar aplicativos de leitura. Evite usar um endereço de conexão de nó único, pois um failover pode alterar as funções dos nós. Consulte a tabela a seguir para entender as diferenças entre os tipos de conexão.

Tipo de endpoint

Tipo de endereço

Descrição

Endereço ConnectionStringURI SRV [Recomendado]

No MongoDB, SRV é um tipo de registro DNS que simplifica a string de conexão e permite a descoberta automática de membros em um conjunto de réplicas.

Ao adicionar ou remover nós de uma instância de conjunto de réplicas, o uso de um endereço SRV permite que o aplicativo interaja com a instância sem interrupções. Isso simplifica o design e a manutenção do aplicativo.

Importante
  • Por padrão, o endereço SRV não aparece no console. Para usá-lo, acesse a página Database Connection e clique em Apply for Private SRV Address ou Apply for Public SRV Address.

  • Para solicitar um endereço SRV público, ative primeiro um endereço público para a instância.

  • Endereços SRV são suportados apenas para instâncias com discos cloud.

  • Recomendamos que aplicativos em ambiente de produção se conectem ao banco de dados usando o endereço ConnectionStringURI SRV. O cliente distribui automaticamente as solicitações entre vários nós da instância para balanceamento de carga. Se um nó falhar, o cliente executa automaticamente um failover e envia solicitações para um nó saudável.

  • Versões mais antigas de drivers podem não suportar endereços SRV ou descoberta automática de nós. Por exemplo:

    • pymongo em versões anteriores à 3.9.0.

    • mongo-java-driver em versões anteriores à 3.10.0.

    • mongodb-go-driver em versões anteriores à 1.1.0.

    • Driver MongoDB Node.js em versões anteriores à 3.3.0.

    • mongo-cxx-driver em versões anteriores à 3,8.

Endereço ConnectionStringURI

O endereço ConnectionStringURI oferece balanceamento de carga e alta disponibilidade. Ele contém os endereços de todos os nós da instância, permitindo operações de leitura e escrita no banco de dados. Use este endereço caso a versão do seu driver não suporte endereços SRV ou descoberta automática de nós.

Importante
  • É recomendável que aplicativos em produção usem o endereço ConnectionStringURI para se conectar à instância. Isso evita que um failover afete as operações de leitura e escrita do seu aplicativo.

  • Se os parâmetros readPreference e readPreferenceTags não estiverem definidos, o cliente enviará solicitações de leitura para o nó primário.

  • Após adicionar ou remover nós de uma instância de conjunto de réplicas, atualize a string de conexão para refletir essas alterações.

Endereço ReadOnly ConnectionStringURI

O endereço ReadOnly ConnectionStringURI contém apenas os endereços de todos os nós somente leitura da instância. Ao se conectar a este endereço, o cliente envia solicitações de leitura para os nós somente leitura e solicitações de escrita para o nó primário.

Nota
  • Caso a instância possua nós somente leitura, recomendamos que aplicativos de leitura se conectem usando este endereço.

  • O endereço ReadOnly ConnectionStringURI fica visível apenas se a instância tiver nós somente leitura.

  • Se um nó somente leitura falhar, as solicitações de leitura serão redirecionadas automaticamente para o próximo nó disponível, sem afetar as operações de leitura do aplicativo. Caso todos os nós somente leitura falhem, as conexões a este endereço também falharão.

Endereço primário

Endereço de conexão do nó primário. Conecte-se a este endereço para realizar operações de leitura e escrita no banco de dados.

Importante

Não recomendamos que aplicativos em produção se conectem à instância por meio deste endereço. Após um failover, o endereço do nó primário muda. É necessário conectar-se ao novo nó primário para evitar interrupções nas operações de leitura e escrita.

Endereço secundário

Endereço de conexão de um nó secundário. Use este endereço para executar apenas operações de leitura no banco de dados.

Importante

Evite usar este endereço para aplicativos em ambiente de produção. Após um failover, um nó secundário pode ser promovido a primário. Se o aplicativo continuar usando este endereço, poderá se conectar a um nó primário, causando conflitos de permissão ou operações de escrita não intencionais.

Endereço somente leitura

Endereço de conexão de um nó somente leitura. Permite executar exclusivamente operações de leitura no banco de dados.

Nota

Este endereço é exibido apenas quando a instância possui nós somente leitura.

Formato do endereço de conexão

Endereço ConnectionStringURI SRV

Formato:

mongodb+srv://<username>:<password>@<srv-host>/<database>?[authSource=<authenticationDatabase>][&readPreference=<readPreference_value>][&readPreferenceTags=<readonly_Tags>]<other_options>

Parâmetros:

Parâmetro

Descrição

mongodb+srv://

Prefixo da string de conexão que indica o uso de registros DNS SRV para descoberta de service.

<username>

Nome da conta do banco de dados.

<password>

Senha da conta do banco de dados.

<srv-host>

Nome do host.

<database>

Banco de dados a ser acessado. Padrão: admin.

authSource=<authenticationDatabase> (Opcional)

Especifique o banco de dados ao qual a conta pertence. <authenticationDatabase> é o nome do banco de dados de autenticação.

Nota

Para strings de conexão SRV do ApsaraDB for MongoDB, o registro TXT define authSource=admin, sobrescrevendo o atributo de autenticação de <database>. Para alterar o banco de dados de autenticação, defina explicitamente authSource=<authenticationDatabase> em vez de modificar o parâmetro <database>. Para mais detalhes, consulte a documentação oficial do MongoDB.

readPreference=[primary | primaryPreferred | secondary | secondaryPreferred] (Opcional)

Ative a separação de leitura/escrita e o balanceamento de carga. Direciona solicitações de escrita para o nó primário e leituras para o tipo de nó especificado. Valores válidos:

  • readPreference=primary: Encaminha leituras apenas para o nó primário.

  • readPreference=primaryPreferred: Prioriza o nó primário para leituras. Se indisponível, direciona para nós secundários e somente leitura.

  • readPreference=secondary: Restringe leituras a nós secundários e somente leitura. Se todos estiverem indisponíveis, a solicitação falha sem redirecionamento para o primário.

  • readPreference=secondaryPreferred: Prefere nós secundários e somente leitura. Caso estejam inacessíveis, as solicitações vão para o nó primário.

Nota

Ao rotear leituras para nós secundários e somente leitura, a carga pode ficar desequilibrada. Para refinar a seleção de nós, configure o parâmetro readPreferenceTags.

readPreferenceTags=<readonly_Tags> (Opcional)

Direciona solicitações de leitura primeiramente para nós que correspondem às tags especificadas. Geralmente usado com readPreference, sendo incompatível com o modo primary. <readonly_Tags> representa uma lista de tags de pares chave-valor para nós somente leitura. Tipos suportados:

  • readPreferenceTags=role:electable: Dá prioridade a nós secundários para leituras.

    Nota

    Esta opção aplica-se somente a instâncias com discos cloud.

  • readPreferenceTags=role:readonly: Prioriza nós somente leitura para solicitações de leitura.

<other_options>

Outros parâmetros opcionais.

Nota

A opção SSL para conexões SRV é verdadeira por padrão. Para desativar a criptografia SSL, adicione o parâmetro ssl=false à string de conexão. Para mais informações sobre parâmetros opcionais, veja a documentação oficial do MongoDB.

Combine os parâmetros readPreference e readPreferenceTags conforme o cenário desejado:

Comportamento de failover

Nós preferenciais

Combinação de parâmetros

Se as leituras nos nós preferenciais falharem, roteie as solicitações para o nó primário

Preferir o nó primário

readPreference=primaryPreferred

Preferir nós secundários e somente leitura

readPreference=secondaryPreferred

Dar preferência a nós secundários

Nota

Caso os nós secundários fiquem indisponíveis, as leituras serão redirecionadas ao nó primário via failover.

readPreference=secondaryPreferred&readPreferenceTags=role:electable

Priorizar nós somente leitura

Nota

Na ausência de nós somente leitura disponíveis, o sistema faz failover das leituras para o nó primário.

readPreference=secondaryPreferred&readPreferenceTags=role:readonly

Se as leituras nos nós preferenciais falharem, não roteie solicitações para o nó primário

Ler apenas de nós secundários e somente leitura

readPreference=secondary

Leitura exclusiva de nós secundários

Nota

A operação de leitura falhará se nenhum nó secundário estiver disponível.

readPreference=secondary&readPreferenceTags=role:electable

Leitura restrita a nós somente leitura

Nota

A leitura resultará em erro caso não haja nós somente leitura acessíveis.

readPreference=secondary&readPreferenceTags=role:readonly

Exemplo:

Neste exemplo, a conta de banco de dados 'test' é usada para acessar o banco de dados 'admin'.

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

Endereço ConnectionStringURI

Formato:

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

Parâmetros:

Parâmetro

Descrição

<username>

Nome da conta do banco de dados. Padrão: root.

<password>

Senha associada à conta do banco de dados.

<host>

Os domain names dos nós primário, secundário e somente leitura.

<port>

As ports dos nós primário, secundário e somente leitura.

<database>

Banco de dados alvo. Valor padrão: admin.

replicaSet=<replicaSet_value>

Roteia solicitações de leitura para todos os nós da instância de conjunto de réplicas. <replicaSet_value> corresponde ao ID exclusivo do endpoint de alta disponibilidade da instância.

authSource=<authenticationDatabase> (Opcional)

Defina o banco de dados de autenticação onde a conta está registrada. <authenticationDatabase> indica o nome desse banco. Se omitido, assume-se o valor de <database> como padrão.

readPreference=[primary | primaryPreferred | secondary | secondaryPreferred] (Opcional)

Permite separar leituras e escritas, além de balancear a carga. Solicitações de escrita seguem para o nó primário, enquanto as de leitura obedecem ao tipo de nó definido. Opções válidas:

  • readPreference=primary: Leituras direcionadas exclusivamente ao nó primário.

  • readPreference=primaryPreferred: Tenta ler do nó primário; se falhar, usa nós secundários ou somente leitura.

  • readPreference=secondary: Limita leituras a nós secundários e somente leitura. Falha se nenhum estiver disponível, sem recorrer ao primário.

  • readPreference=secondaryPreferred: Foca em nós secundários e somente leitura, revertendo para o primário apenas se necessário.

Nota

Distribuições de carga entre nós secundários e somente leitura podem ser irregulares. Utilize o parâmetro readPreferenceTags para especificar melhor os nós de destino.

readPreferenceTags=<readonly_Tags> (Opcional)

Prioriza nós que atendem às tags definidas para solicitações de leitura. Normalmente combinado com readPreference, não funciona com o modo primary. <readonly_Tags> consiste em uma lista de tags chave-valor para nós somente leitura. Tipos aceitos:

  • readPreferenceTags=role:electable: Foca em nós secundários para operações de leitura.

    Nota

    Válido apenas para instâncias baseadas em discos cloud.

  • readPreferenceTags=role:readonly: Seleciona preferencialmente nós somente leitura.

É possível combinar os parâmetros readPreference e readPreferenceTags para atender a diferentes cenários:

Comportamento de failover

Nós preferenciais

Combinação de parâmetros

Se as leituras nos nós preferenciais falharem, roteie as solicitações para o nó primário

Preferir o nó primário

readPreference=primaryPreferred

Preferir nós secundários e somente leitura

readPreference=secondaryPreferred

Dar preferência a nós secundários

Nota

Caso os nós secundários fiquem indisponíveis, as leituras serão redirecionadas ao nó primário via failover.

readPreference=secondaryPreferred&readPreferenceTags=role:electable

Priorizar nós somente leitura

Nota

Na ausência de nós somente leitura disponíveis, o sistema faz failover das leituras para o nó primário.

readPreference=secondaryPreferred&readPreferenceTags=role:readonly

Se as leituras nos nós preferenciais falharem, não roteie solicitações para o nó primário

Ler apenas de nós secundários e somente leitura

readPreference=secondary

Leitura exclusiva de nós secundários

Nota

A operação de leitura falhará se nenhum nó secundário estiver disponível.

readPreference=secondary&readPreferenceTags=role:electable

Leitura restrita a nós somente leitura

Nota

A leitura resultará em erro caso não haja nós somente leitura acessíveis.

readPreference=secondary&readPreferenceTags=role:readonly

Exemplo:

mongodb://root:****@dds-bp19f409d7512****.mongodb.rds.aliyuncs.com:3717,dds-bp19f409d7512****.mongodb.rds.aliyuncs.com:3717/admin?replicaSet=mgset-6108****

Endereço ReadOnly ConnectionStringURI

Formato:

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

Parâmetros:

Parâmetro

Descrição

<username>

Nome da conta do banco de dados. Padrão: root.

<password>

Senha da conta do banco de dados.

<host>

O domain name do nó somente leitura.

<port>

A port do nó somente leitura.

<database>

Banco de dados a ser acessado. Padrão: admin.

readPreference=secondary&readPreferenceTags=role:readonly

Roteia solicitações de leitura para nós somente leitura. readPreferenceTags define a lista de tags chave-valor para esses nós. Para este tipo de conexão, o valor obrigatório é role:readonly.

replicaSet=<replicaSet_value>

Distribui leituras por todos os nós do conjunto de réplicas. <replicaSet_value> é o ID exclusivo do endpoint de alta disponibilidade da instância.

authSource=<authenticationDatabase> (Opcional)

Indica o banco de dados de autenticação da conta. <authenticationDatabase> representa o nome desse banco. Se não especificado, <database> será usado para autenticação.

Exemplo:

mongodb://root:****@dds-bp19f409d7512****.mongodb.rds.aliyuncs.com:3717/admin?readPreference=secondary&readPreferenceTags=role:readonly&replicaSet=mgset-6108****

Endereço primário

Formato:

mongodb://<username>:<password>@<host>:<port>/<database>?[directConnection=true]

Parâmetros:

Parâmetro

Descrição

<username>

Nome da conta do banco de dados.

<password>

Senha da conta do banco de dados.

<host>

O domain name do nó primário.

<port>

A port do nó primário.

<database>

Banco de dados de destino. Padrão: admin.

directConnection=true (Opcional)

Envia solicitações apenas para o endpoint atual (nó primário).

  • Definindo este parâmetro como true, todas as requisições de leitura e escrita vão diretamente para o nó primário.

  • Se omitido ou definido como false, as solicitações de leitura poderão ser encaminhadas a outros nós.

Exemplo:

mongodb://root:****@dds-bp19f409d7512****.mongodb.rds.aliyuncs.com:3717/admin?directConnection=true

Endereço secundário

Formato:

mongodb://<username>:<password>@<host>:<port>/<database>?[directConnection=true]

Parâmetros:

Parâmetro

Descrição

<username>

Nome da conta do banco de dados.

<password>

Senha da conta do banco de dados.

<host>

O domain name do nó secundário.

<port>

A port do nó secundário.

<database>

Banco de dados a ser acessado. Padrão: admin.

directConnection=true (Opcional)

Restringe solicitações ao endpoint atual (nó secundário).

  • Quando definido como true, o nó rejeita solicitações de escrita.

  • Se omitido ou configurado como false, as escritas serão encaminhadas ao nó primário.

Exemplo:

mongodb://root:****@dds-bp19f409d7512****.mongodb.rds.aliyuncs.com:3717/admin?directConnection=true

Endereço somente leitura

Formato:

mongodb://<username>:<password>@<host>:<port>/<database>?[directConnection=true]

Parâmetros:

Parâmetro

Descrição

<username>

Nome da conta do banco de dados.

<password>

Senha da conta do banco de dados.

<host>

O domain name do nó somente leitura.

<port>

A port do nó somente leitura.

<database>

Banco de dados alvo. Valor padrão: admin.

directConnection=true (Opcional)

Direciona requisições exclusivamente ao endpoint atual (nó somente leitura).

  • Com o valor true, o nó bloqueia qualquer solicitação de escrita.

  • Se este parâmetro for omitido ou ajustado para false, escritas serão repassadas ao nó primário.

Exemplo:

mongodb://root:****@dds-bp19f409d7512****.mongodb.rds.aliyuncs.com:3717/admin?directConnection=true

Tipos de rede do endpoint

Tipo de rede

Descrição

Rede privada

  • VPC: Uma VPC é uma rede isolada que oferece segurança e desempenho aprimorados. Por padrão, as instâncias do ApsaraDB for MongoDB fornecem endpoints de VPC.

  • Classic Network: Rede não isolada que depende apenas de grupos de segurança ou listas de permissões para proteção. Novas instâncias não suportam mais a Classic Network. Para mais informações, consulte Notice: Classic Network is no longer supported for new ApsaraDB for MongoDB instances.

Rede pública

Conectar-se a uma instância pela rede pública envolve riscos de segurança. Por padrão, instâncias do ApsaraDB for MongoDB não oferecem endpoints públicos. Caso precise dessa conexão, solicite um endpoint público manualmente.

Endpoint do banco de dados

  1. Acesse a página MongoDB Replica Set Instances, selecione um grupo de recursos e uma região e clique na instância desejada.

  2. No painel de navegação à esquerda, clique em Database Connections.

Conectar-se a um banco de dados MongoDB

  1. Obtenha as seguintes informações:

  2. Conecte-se ao banco de dados utilizando um dos métodos abaixo:

Cenários comuns de conexão

Perguntas frequentes

Por que o cliente envia solicitações para nós que não constam na string de conexão?

Esse comportamento faz parte do recurso de descoberta de service do cliente MongoDB, essencial para a alta disponibilidade. Tal mecanismo permite que o cliente se adapte automaticamente a mudanças na topologia do cluster, como a falha de um nó primário, garantindo a continuidade do service. Adicione directConnection=true à string de conexão para restringir o envio de solicitações a um único endpoint. Para mais detalhes, consulte directConnection.

Exemplo:

Quando o endpoint do cliente para uma instância de cinco nós está configurado como mongodb://root:xxx@dds-xxxxx1-pub.mongodb.rds.aliyuncs.com:3717,dds-xxxxx2-pub.mongodb.rds.aliyuncs.com:3717/admin, o cliente também envia solicitações e monitora o status dos dois nós restantes, que não estão incluídos no endpoint anterior: dds-xxxxx3-pub.mongodb.rds.aliyuncs.com:3717,dds-xxxxx4-pub.mongodb.rds.aliyuncs.com:3717.