Por padrão, o Realtime Compute for Apache Flink não acessa a internet pública. Este tópico aborda as perguntas frequentes sobre acesso à internet pública, conectividade entre VPCs, resolução de DNS e testes de rede.
Solucionar problemas de rede
O Realtime Compute for Apache Flink é implantado em uma VPC específica, que não pode ser modificada após a ativação do workspace. Se a fonte ou o destino estiver em um ambiente de rede diferente, a comunicação falhará.
Siga estas etapas para diagnosticar e resolver problemas de rede:
Teste a conectividade: use o recurso de sondagem de rede no console do Flink para verificar a comunicação entre o workspace do Flink e os serviços upstream ou downstream. Consulte Executar uma sondagem de rede.
-
Verifique o acesso à rede: por padrão, o Flink acessa apenas serviços na mesma região e VPC.
Acesso entre VPCs: consulte Acessar serviços entre VPCs.
Acesso à internet pública: use um NAT gateway para conectar a VPC à internet; consulte Acessar a internet.
Configure listas de permissões: verifique se os grupos de segurança ou firewalls dos serviços upstream e downstream permitem tráfego do workspace do Flink. Configurar listas de permissões para serviços upstream e downstream.
Ajuste as configurações de conexão: se ocorrerem erros persistentes de tempo limite mesmo com a rede configurada corretamente, aumente a opção
connect.timeoutna instrução DDL. O valor padrão desse parâmetro é 30 segundos.
Executar uma sondagem de rede
O Realtime Compute for Apache Flink oferece um recurso integrado de sondagem de rede para teste de conectividade. Procedimento:
Acesse o Portal de Gerenciamento do Realtime Compute for Apache Flink.
Na coluna Actions do workspace desejado, clique em Console.
-
Clique no ícone Network Detection no canto superior direito da barra de navegação.

-
Insira o endpoint ou endereço IP e porta do serviço e clique em Detect.
ImportanteAo inserir um endpoint no campo Host, remova
:<port>e insira o número da porta no campo Port.
Se a sondagem de rede retornar um erro "connect timed out", provavelmente o workspace do Flink não tem as permissões de rede necessárias para alcançar o endpoint de destino. Por padrão, o Flink acessa apenas serviços na mesma VPC. Verifique se o endpoint de destino não é um endereço de internet pública ou está localizado em uma VPC diferente. Se precisar de acesso entre VPCs ou à internet pública, consulte Acessar serviços entre VPCs e Acessar a internet.
Obter o endpoint do Hologres
Acesse o console do Hologres. Na página Instances, clique na instância desejada.
-
Na página Instance Details, localize o endpoint na seção Network Information. Escolha o endpoint correspondente à sua topologia de rede:
Tipo de rede
Caso de uso
Dedicated VPC (Recomendado)
Rede privada conectada a uma VPC específica.
-
Mesma VPC (Recomendado): se a instância do Hologres e o workspace do Flink estiverem na mesma VPC, a comunicação ocorre diretamente.
-
VPCs diferentes: se estiverem em VPCs diferentes, configure a conexão entre VPCs. Para mais informações, consulte Acessar serviços entre VPCs.
Public Network
Rede pública sem restrições de acesso. A latência pode ser maior e menos previsível que o acesso por VPC.
Para mais informações, consulte Acessar a internet pública.
-
-
(Opcional) Execute uma sondagem de rede no console do Flink para verificar a conectividade. Para mais informações, consulte Executar uma sondagem de rede.
Sondagem bem-sucedida: o endpoint está correto e a rede está conectada.
Sondagem com falha: verifique se a instância do Hologres e o workspace do Flink estão em VPCs diferentes ou se necessitam de acesso à internet pública.
Acessar a internet
O acesso à internet pública geralmente apresenta latência mais alta e mais volátil em comparação com a comunicação interna por VPC. Para cargas de trabalho que exigem latência e estabilidade rigorosas, priorize a conectividade por VPC.
Use um NAT Gateway do Alibaba Cloud para conectar a VPC à internet pública. Isso permite que o workspace do Flink acesse fontes de dados hospedadas fora da rede privada. Para mais detalhes, consulte Fontes de dados públicas.
Verificar a largura de banda da internet
Se o job apresentar métricas normais e sem backpressure, mas o throughput permanecer abaixo do esperado, a largura de banda da internet pode ser o gargalo.
Siga estas etapas para diagnosticar limites de largura de banda:
No console do Realtime Compute for Apache Flink, clique em Details na coluna Actions.
Na caixa de diálogo Workspace Details, anote o VPC ID.
Acesse o console de VPC e clique no ID da VPC desejada.
-
Na página de detalhes da VPC, selecione a aba Resource Management. Na seção Access to Internet, clique no número abaixo de Internet NAT Gateway.
Nota0 indica que você ainda não tem uma instância de Internet NAT Gateway. Se o número for 0, crie um Internet NAT gateway. Para mais informações, consulte NAT Gateway público.
Clique no ID do Internet NAT gateway desejado.
Na página de detalhes, selecione a aba Associated EIP e clique no ID da instância EIP.
Na página de detalhes da instância EIP, selecione a aba Monitoring and O&M para visualizar a largura de banda.
Acessar serviços entre VPCs
Para obter o melhor desempenho e simplificar a rede, recomendamos implantar os serviços na mesma VPC do workspace do Flink. Se os recursos já estiverem implantados, considere as opções a seguir:
Colocação de serviços: se os serviços estiverem na fase de planejamento, provisione-os na mesma VPC do workspace do Flink.
Migração de workspace: se aplicável, libere o workspace atual do Flink e crie um novo na mesma VPC dos serviços existentes.
Conectividade entre VPCs: para serviços que precisam permanecer em uma VPC separada, configure a conexão entre VPCs. Para mais detalhes, consulte Conectar VPCs.
Configurar lista de permissões para serviços upstream e downstream
Geralmente, os serviços upstream e downstream negam acesso do Flink. Adicione o bloco CIDR do vSwitch configurado para o workspace do Flink à lista de permissões de cada serviço de destino.
Acesse o Portal de Gerenciamento do Realtime Compute for Apache Flink.
Na coluna Actions do workspace desejado, clique em Details.
Na caixa de diálogo Workspace Details, na seção vSwitch, anote o CIDR Block do vSwitch.

-
Adicione o bloco CIDR do vSwitch à lista de permissões do serviço upstream ou downstream de destino.
Por exemplo, para configurar uma lista de permissões para uma instância do ApsaraDB RDS for MySQL, consulte Configurar uma lista de permissões para uma instância RDS.
NotaEscalonamento de vSwitch: se você adicionar mais vSwitches ao workspace, repita o processo de configuração para cada novo vSwitch.
Conectividade entre zonas: se o vSwitch e os serviços upstream/downstream estiverem em zonas diferentes, ainda é possível habilitar a conectividade adicionando o bloco CIDR do vSwitch à lista de permissões do serviço.
Resolver nomes de domínio para dependências de jobs do Flink
Se os jobs referenciam serviços externos por nome de domínio, podem ocorrer erros de resolução de DNS durante a migração de clusters autogerenciados para o Realtime Compute for Apache Flink. Use os métodos a seguir para resolver esses problemas:
-
Método A: Usar um servidor DNS autogerenciado
Se a VPC do Flink puder alcançar um servidor DNS autogerenciado, configure o workspace do Flink para utilizá-lo.
Acesse o Portal de Gerenciamento do Realtime Compute for Apache Flink.
Na coluna Actions do workspace desejado, clique em Console.
-
No painel de navegação à esquerda, escolha . Na aba Deployment Defaults, localize Other Configuration e adicione o código a seguir.
env.java.opts: >- -Dsun.net.spi.nameservice.provider.1=default -Dsun.net.spi.nameservice.provider.2=dns,sun -Dsun.net.spi.nameservice.nameservers=192.168.0.1(Substitua 192.168.0.1 pelo IP real do seu servidor DNS; separe vários IPs por vírgulas.)
Clique em Save Changes.
-
Reimplante o job.
NotaCompatibilidade do engine: esta configuração não é compatível com engines baseados em JDK 11.
Solução de problemas: se o erro
UnknownHostExceptionpersistir, entre em contato com o suporte técnico do Alibaba Cloud. Se o job apresentar timeouts frequentes de heartbeat doJobManager, consulte Erro: Timeout de heartbeat do JobManager.
-
Método B: Usar o Alibaba Cloud DNS
Se você não tem um servidor DNS autogerenciado ou se a VPC do Flink não consegue alcançar o servidor DNS existente, use o Alibaba Cloud DNS para resolver os nomes de domínio dos serviços.
Como forçar a resolução DNS a usar IPv4?
Quando o nome de domínio de um serviço de backend resolve para um endereço IPv6, as conexões podem falhar. Adicione um parâmetro JVM para forçar o uso da pilha de protocolos IPv4.
Adicione o seguinte parâmetro em Other Configuration:
env.java.opts: '-Djava.net.preferIPv4Stack=true'
Esse parâmetro pode ser aplicado em dois níveis:
Por job: na página O&M, clique no job desejado e acesse . Para mais informações, consulte Parâmetros.
Para todo o workspace: acesse .
Salve a configuração e reinicie o job para que as alterações entrem em vigor.
Erro: Timeout de heartbeat do JobManager
-
Sintoma
Após configurar um servidor DNS autogerenciado para resolução de domínio, os jobs falham frequentemente com erro de
JobManager heartbeat timeout. -
Causa
Alta latência de DNS: a latência entre os TaskManagers e o servidor DNS autogerenciado causa atrasos que interrompem o sinal de heartbeat entre o JobManager e os TaskManagers.
-
Solução
Desative a resolução de hostname para os TaskManagers a fim de ignorar a consulta DNS durante as verificações de heartbeat. Adicione a seguinte configuração ao job:
jobmanager.retrieve-taskmanager-hostname: false. Essa configuração não afeta a capacidade do job de se conectar a serviços externos por nome de domínio. Para instruções detalhadas, consulte Configurar parâmetros de execução personalizados.
Por que o Kafka retorna timeout de metadados mesmo com a rede conectada?
A conectividade de rede entre o Flink e o Kafka não garante que o Flink consiga ler dados do Kafka. O Flink se conecta ao servidor bootstrap do Kafka para obter os metadados do cluster, que contêm os endpoints anunciados de cada broker. O Flink precisa conseguir alcançar esses endpoints anunciados para ler dados.
Mesmo que a conexão inicial com o bootstrap seja bem-sucedida, a transferência de dados falhará se os endpoints anunciados nos metadados do broker estiverem inacessíveis a partir da VPC do Flink. Para mais informações, consulte Kafka Client Cannot Connect to Broker.
Para diagnosticar esse problema:
Use
zkCli.shouzookeeper-shell.shpara se conectar ao cluster ZooKeeper usado pelo Kafka.Execute
ls /brokers/idspara listar todos os IDs de brokers do Kafka.Execute
get /brokers/ids/{your_broker_id}para visualizar os metadados do broker. As informações de endpoint estão no campolistener_security_protocol_map.-
Verifique se o Flink consegue alcançar o endpoint listado nos metadados do broker.
Se o endpoint usar um nome de domínio, configure a resolução de DNS para o workspace do Flink. Para mais informações, consulte Resolver nomes de domínio para dependências de jobs do Flink.