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
|
|
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
|
|
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
|
|
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 |
|
|
Prefixo da string de conexão que indica o uso de registros DNS SRV para descoberta de service. |
|
|
Nome da conta do banco de dados. |
|
|
Senha da conta do banco de dados. |
|
|
Nome do host. |
|
|
Banco de dados a ser acessado. Padrão: admin. |
|
|
Especifique o banco de dados ao qual a conta pertence. Nota
Para strings de conexão SRV do ApsaraDB for MongoDB, o registro TXT define |
|
|
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:
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. |
|
|
Direciona solicitações de leitura primeiramente para nós que correspondem às tags especificadas. Geralmente usado com readPreference, sendo incompatível com o modo
|
|
|
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 |
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 |
|
|
Preferir nós secundários e somente leitura |
|
|
|
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. |
|
|
|
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. |
|
|
|
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 |
|
|
Leitura exclusiva de nós secundários Nota
A operação de leitura falhará se nenhum nó secundário estiver disponível. |
|
|
|
Leitura restrita a nós somente leitura Nota
A leitura resultará em erro caso não haja nós somente leitura acessíveis. |
|
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 |
|
|
Nome da conta do banco de dados. Padrão: root. |
|
|
Senha associada à conta do banco de dados. |
|
|
Os domain names dos nós primário, secundário e somente leitura. |
|
|
As ports dos nós primário, secundário e somente leitura. |
|
|
Banco de dados alvo. Valor padrão: admin. |
|
|
Roteia solicitações de leitura para todos os nós da instância de conjunto de réplicas. |
|
|
Defina o banco de dados de autenticação onde a conta está registrada. |
|
|
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:
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. |
|
|
Prioriza nós que atendem às tags definidas para solicitações de leitura. Normalmente combinado com readPreference, não funciona com o modo
|
É 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 |
|
|
Preferir nós secundários e somente leitura |
|
|
|
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. |
|
|
|
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. |
|
|
|
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 |
|
|
Leitura exclusiva de nós secundários Nota
A operação de leitura falhará se nenhum nó secundário estiver disponível. |
|
|
|
Leitura restrita a nós somente leitura Nota
A leitura resultará em erro caso não haja nós somente leitura acessíveis. |
|
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 |
|
|
Nome da conta do banco de dados. Padrão: root. |
|
|
Senha da conta do banco de dados. |
|
|
O domain name do nó somente leitura. |
|
|
A port do nó somente leitura. |
|
|
Banco de dados a ser acessado. Padrão: admin. |
|
|
Roteia solicitações de leitura para nós somente leitura. |
|
|
Distribui leituras por todos os nós do conjunto de réplicas. |
|
|
Indica o banco de dados de autenticação da conta. |
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 |
|
|
Nome da conta do banco de dados. |
|
|
Senha da conta do banco de dados. |
|
|
O domain name do nó primário. |
|
|
A port do nó primário. |
|
|
Banco de dados de destino. Padrão: admin. |
|
|
Envia solicitações apenas para o endpoint atual (nó primário).
|
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 |
|
|
Nome da conta do banco de dados. |
|
|
Senha da conta do banco de dados. |
|
|
O domain name do nó secundário. |
|
|
A port do nó secundário. |
|
|
Banco de dados a ser acessado. Padrão: admin. |
|
|
Restringe solicitações ao endpoint atual (nó secundá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 |
|
|
Nome da conta do banco de dados. |
|
|
Senha da conta do banco de dados. |
|
|
O domain name do nó somente leitura. |
|
|
A port do nó somente leitura. |
|
|
Banco de dados alvo. Valor padrão: admin. |
|
|
Direciona requisições exclusivamente ao endpoint atual (nó somente leitura).
|
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 |
|
|
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
Acesse a página MongoDB Replica Set Instances, selecione um grupo de recursos e uma região e clique na instância desejada.
No painel de navegação à esquerda, clique em Database Connections.
Conectar-se a um banco de dados MongoDB
-
Obtenha as seguintes informações:
-
A conta do banco de dados. A conta inicial é
root.NotaEvite utilizar a conta
rootpara conexões em ambientes de produção. Você pode crie uma conta de banco de dados e atribuir permissões. A senha da conta do banco de dados. Caso não tenha definido uma senha ou a tenha esquecido, defina ou redefina a senha.
O banco de dados a ser acessado. Ao usar a conta
root, o banco correspondente éadmin.
-
Conecte-se ao banco de dados utilizando um dos métodos abaixo:
Cenários comuns de conexão
Conectar-se ao MongoDB de uma instância ECS com tipo de rede diferente por uma rede interna
Conectar-se ao MongoDB de uma instância ECS em uma região diferente por uma rede interna
Conectar-se ao MongoDB de uma instância ECS em uma conta diferente por uma rede interna
Conectar-se a uma instância de conjunto de réplicas para configurar a separação de leitura/escrita