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.
Central de ajuda/ GaussDB(DWS)/ Guia de gerenciamento/ Conexão de clusters/ Uso dos drivers JDBC e ODBC para conectar a um cluster/ Configuração do JDBC para conectar-se a um cluster (modo de balanceamento de carga)
Atualizado em 2024-08-19 GMT+08:00

Configuração do JDBC para conectar-se a um cluster (modo de balanceamento de carga)

Contexto

Se você usar o JDBC para conectar-se a apenas um CN no cluster, esse CN poderá ser sobrecarregado e outros recursos do CN desperdiçados. Também incorre em riscos de falha de nó único.

Para evitar esses problemas, você pode usar o JDBC para se conectar a vários CNs. Dois modos estão disponíveis:

  • Conexão usando ELB: um ELB distribui o tráfego de acesso a vários ECSs para controle de tráfego com base em políticas de encaminhamento. Melhora a capacidade de tolerância a falhas dos programas de aplicação.
  • Conexão no modo multi-host: use o JDBC para configurar vários nós, o que é semelhante ao ELB.

Método 1: usar o ELB para conectar-se a um cluster

  1. Obtenha o endereço do Elastic Load Balance. No console, vá para a página de detalhes de um cluster e obtenha o endereço IP do ELB. Para obter detalhes, consulte Associação e desassociação do ELB.

  2. Configure o driver. Para mais detalhes, consulte Baixa do driver JDBC ou ODBC.

    1
    2
    3
    4
    5
    <dependency> 
        <groupId>com.huaweicloud.dws</groupId>  
        <artifactId>huaweicloud-dws-jdbc</artifactId>   
        <version>8.1.1.1</version> 
    </dependency>
    

  3. Obtenha a conexão do banco de dados.

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    private static final String USER_NAME = "dbadmin";
    private static final String PASSWORD = "password";
    // jdbc:postgresql://ELB_IP:PORT/dbName"
    private static final String URL = "jdbc:postgresql://100.95.153.169:8000/gaussdb";
    private static Properties properties = new Properties();
    static {
        properties.setProperty("user", USER_NAME);
        properties.setProperty("password", PASSWORD);
    }
    /**
     * Obtain the database connection.
     */
    public static Connection getConnection() {
        Connection connection = null;
        try {
            connection = DriverManager.getConnection(URL, properties);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return connection;
    }
    

Método 2: conectar-se ao cluster no modo multi-host

  1. Obtenha o EIP. Vá para a página de detalhes de um cluster no console e obtenha o EIP.

  2. Configure o driver. Para mais detalhes, consulte Baixa do driver JDBC ou ODBC.

    1
    2
    3
    4
    5
    <dependency> 
        <groupId>com.huaweicloud.dws</groupId>  
        <artifactId>huaweicloud-dws-jdbc</artifactId>   
        <version>8.1.1.1</version> 
    </dependency>
    

  3. Obtenha a conexão do banco de dados.

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    private static final String USER_NAME = "dbadmin";
    private static final String PASSWORD = "password";
    // jdbc:postgresql://host1:port1,host2:port2/dbName"
    private static final String URL = "jdbc:postgresql://100.95.146.194:8000,100.95.148.220:8000,100.93.0.221:8000/gaussdb?loadBalanceHosts=true";
    private static Properties properties = new Properties();
    static {
        properties.setProperty("user", USER_NAME);
        properties.setProperty("password", PASSWORD);
    }
    /**
     * Obtain the database connection.
     */
    public static Connection getConnection() {
        Connection connection = null;
        try {
            connection = DriverManager.getConnection(URL, properties);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return connection;
    }