Diagnostique e resolva falhas de conexão no ApsaraMQ for RabbitMQ. Siga cada etapa em ordem — a maioria dos problemas é resolvida nas duas primeiras etapas.
Etapa 1: Verifique suas credenciais
O ApsaraMQ for RabbitMQ oferece suporte a dois modelos de autenticação. Suas credenciais dependem do modelo utilizado pela sua instância.
Autenticação open source
Crie um nome de usuário e uma senha personalizados para sua instância. Para mais detalhes, consulte Create a username and password.
Autenticação RAM
Gere um nome de usuário e uma senha a partir de um par de AccessKey da Alibaba Cloud. Para mais detalhes, consulte Create a static username and password.
Não utilize um par de AccessKey diretamente como nome de usuário e senha para se conectar ao ApsaraMQ for RabbitMQ. É necessário gerar credenciais a partir do par de AccessKey antes da conexão.
Etapa 2: Verifique as permissões
As conexões falham quando o usuário não possui as permissões necessárias. O que verificar depende do seu modelo de autenticação.
Verifique as permissões de usuário open source
Confirme se o usuário personalizado tem as permissões exigidas nos resources de destino. Para mais detalhes, consulte Permission management.
Verifique as permissões de usuário RAM
Confirme se o usuário RAM proprietário do par de AccessKey possui as permissões necessárias.
Permissões básicas -- Concedem permissões gerais do service AMQP, como operações e acesso somente leitura. Consulte Step 1: (Optional) Grant permissions to a RAM user.
Políticas refinadas -- Restringem operações a resources específicos, como um vhost particular. Consulte Custom policies for ApsaraMQ for RabbitMQ. Combine várias políticas para obter um controle de acesso mais preciso.
Etapa 3: Verifique o endpoint
Selecione o tipo correto de endpoint com base na rede do seu cliente:
|
Rede |
Tipo de endpoint |
|
Rede interna da Alibaba Cloud |
Endpoint VPC |
|
Rede externa (como um ambiente de desenvolvimento local) |
Endpoint público |
Após selecionar o endpoint correto, teste a conectividade de rede a partir do ambiente do seu cliente:
-
Teste a resolução DNS e a acessibilidade básica:
ping <endpoint> -
Verifique se a porta AMQP está aberta:
telnet <endpoint> 5672Se a conexão for bem-sucedida, você verá uma saída semelhante a:
Trying <IP>... Connected to <endpoint>. Escape character is '^]'.Caso a conexão seja recusada ou atinja o tempo limite, verifique sua configuração de rede, regras de grupo de segurança e configurações de firewall.
Etapa 4: Verifique os logs do lado do servidor
Se o endpoint estiver acessível, mas as conexões ainda falharem, verifique se as requisições estão chegando ao servidor.
Ative o Simple Log Service para sua instância do ApsaraMQ for RabbitMQ. Para mais detalhes, consulte Log Management.
-
Após a ativação, revise os logs em busca de entradas relacionadas à conexão. Por exemplo, se você se conecta frequentemente a partir de um ambiente de teste, mas nenhum log correspondente aparece, as requisições de conexão não estão chegando ao servidor.
Logs presentes -- A requisição chegou ao servidor. Prossiga para a Etapa 5 para solucionar problemas por código de erro.
Nenhum log registrado -- A requisição não chegou ao servidor. Reexamine a lógica do seu cliente e o caminho de rede.
Etapa 5: Solucione problemas por código de erro
Se os logs do lado do servidor confirmarem que as requisições chegaram ao servidor, verifique o código de retorno no log para identificar a causa raiz. Para obter a lista completa, consulte Error codes.
Código de retorno | Mensagem de erro | Causa | Ação |
403 |
| Falha na autorização RAM | Verifique as permissões RAM concedidas ao usuário. Consulte a Etapa 2. |
311 |
| O corpo da mensagem excede o limite de tamanho | Reduza o tamanho do corpo da mensagem ou verifique o limite para as especificações da sua instância. |
404 |
| O exchange ou a fila especificada não existe | Verifique o nome do resource no log. Confirme se o resource existe no console ou crie-o. |
530 |
| Limite de throttling ou cota atingido | Atualize as especificações da instância ou otimize seu uso para permanecer dentro dos limites. |
541 |
| Erro interno no broker, geralmente retornado durante atualizações do servidor | Verifique os anúncios de service. Se sua operação for afetada, submit a ticket para entrar em contato com o suporte técnico da Alibaba Cloud. |
Antes de se conectar
Antes de estabelecer a conexão, confirme se:
Sua instância do ApsaraMQ for RabbitMQ está em execução.
Os resources necessários (como vhosts) foram criados no console.
Suas credenciais foram geradas corretamente para o seu modelo de autenticação.
O endpoint correto (VPC ou público) está especificado na configuração do seu cliente.