Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Atualizado em 2023-11-14 GMT+08:00

Java

Se você estiver se conectando a uma instância usando Java, um certificado SSL é opcional, mas baixar um certificado SSL e criptografar a conexão melhorarão a segurança de sua instância. SSL é desativado por padrão para instâncias recém-criadas, mas você pode ativar SSL consultando Ativação ou desativação de SSL. SSL criptografa conexões com bancos de dados, mas aumenta o tempo de resposta da conexão e o uso da CPU. Por esse motivo, a ativação de SSL não é recomendada.

Pré-requisitos

Familiarize-se com:

  • Noções básicas de computador
  • Código Java

Usar um certificado SSL

Use Java para conectar-se ao conjunto de réplicas. O formato do código Java é o seguinte:
mongodb://<username>:<password>@<instance_ip>:<instance_port>/<database_name>?authSource=admin&replicaSet=replica&ssl=true
Tabela 1 Descrição do parâmetro

Parâmetro

Descrição

<username>

Nome de usuário atual.

<password>

Senha para o nome de usuário atual

<instance_ip>

Se você tentar acessar a instância de um ECS, defina instance_ip como o endereço IP privado exibido na página Basic Information da instância à qual você pretende se conectar.

Se você tentar acessar a instância por meio de um EIP, defina instance_ip como o EIP vinculado à instância.

<instance_port>

Porta do banco de dados exibida na página Basic Information. Valor padrão: 8635

<database_name>

Nome do banco de dados a ser conectado.

authSource

Base de dados de utilizadores de autenticação. O valor é admin.

ssl

Modo de conexão. true indica que o modo de conexão SSL é usado.

Use a keytool para configurar o certificado CA. Para obter detalhes sobre os parâmetros, consulte Tabela 2.
keytool -importcert -trustcacerts -file <path to certificate authority file> -keystore <path to trust store> -storepass <password>
Tabela 2 Descrição do parâmetro

Parâmetro

Descrição

<path to certificate authority file>

Caminho para armazenar o certificado SSL.

<path to trust store>

Caminho para armazenar o repositório confiável. Defina este parâmetro conforme necessário, por exemplo, ./trust/certs.keystore.

<password>

Senha personalizada.

Defina as propriedades do sistema JVM no programa para apontar para o repositório confiável e repositório de chaves corretos:
  • System.setProperty("javax.net.ssl.trustStore","<path to trust store>");
  • System.setProperty("javax.net.ssl.trustStorePassword","<password>");

Para obter detalhes sobre o código Java, consulte o exemplo a seguir:

public class Connector { public static void main(String[] args) { try { System.setProperty("javax.net.ssl.trustStore", "./trust/certs.keystore"); System.setProperty("javax.net.ssl.trustStorePassword", "123456"); ConnectionString connString = new ConnectionString("mongodb://<username>:<password>@<instance_ip>:<instance_port>/<database_name>?authSource=admin&replicaSet=replica&ssl=true"); MongoClientSettings settings = MongoClientSettings.builder() .applyConnectionString(connString) .applyToSslSettings(builder -> builder.enabled(true)) .applyToSslSettings(builder -> builder.invalidHostNameAllowed(true)) .build(); MongoClient mongoClient = MongoClients.create(settings); MongoDatabase database = mongoClient.getDatabase("admin"); //Ping the database. Se a operação falhar, ocorre uma exceção. BsonDocument command = new BsonDocument("ping", new BsonInt64(1)); Document commandResult = database.runCommand(command); System.out.println("Connect to database successfully"); } catch (Exception e) { e.printStackTrace(); System.out.println("Test failed"); } } }

Conexão sem o certificado SSL

Você não precisa baixar o certificado SSL porque a verificação do certificado no servidor não é necessária.

Conecte-se a uma instância do conjunto de réplicas usando Java. O formato do link de Java é o seguinte:
mongodb://<username>:<password>@<instance_ip>:<instance_port>/<database_name>?authSource=admin&replicaSet=replica
Tabela 3 Descrição do parâmetro

Parâmetro

Descrição

<username>

Nome de usuário atual.

<password>

Senha para o nome de usuário atual

<instance_ip>

Se você tentar acessar a instância de um ECS, defina instance_ip como o endereço IP privado exibido na página Basic Information da instância à qual você pretende se conectar.

Se você tentar acessar a instância por meio de um EIP, defina instance_ip como o EIP vinculado à instância.

<instance_port>

Porta do banco de dados exibida na página Basic Information. Valor padrão: 8635

<database_name>

Nome do banco de dados a ser conectado.

authSource

Base de dados de utilizadores de autenticação. O valor é admin.

Para obter detalhes sobre o código Java, consulte o exemplo a seguir:

public class Connector { public static void main(String[] args) { try { ConnectionString connString = new ConnectionString("mongodb://<username>:<password>@<instance_ip>:<instance_port>/<database_name>?authSource=admin&replicaSet=replica"); MongoClientSettings settings = MongoClientSettings.builder() .applyConnectionString(connString) .retryWrites(true) .build(); MongoClient mongoClient = MongoClients.create(settings); MongoDatabase database = mongoClient.getDatabase("admin"); //Ping the database. Se a operação falhar, ocorre uma exceção. BsonDocument command = new BsonDocument("ping", new BsonInt64(1)); Document commandResult = database.runCommand(command); System.out.println("Connect to database successfully"); } catch (Exception e) { e.printStackTrace(); System.out.println("Test failed"); } }

}