Pular para o conteúdo principal

FAQs do conector RabbitMQ

info

Beta

Este recurso está em Beta. Os administradores do espaço de trabalho podem controlar o acesso a esse recurso na página Pré-visualizações . Consulte Gerenciar prévias do Databricks.

Esta página contém respostas para perguntas frequentes sobre o conector de ingestão do RabbitMQ gerenciado no Databricks LakeFlow Connect.

Perguntas Frequentes gerais sobre conectores gerenciados

Consulte Perguntas frequentes sobre conectores gerenciados para as perguntas frequentes que se aplicam a todos os conectores gerenciados do LakeFlow Connect. Os itens a seguir são específicos para o conector RabbitMQ.

Perguntas frequentes específicas do conector

Por que estou recebendo um tempo limite de conexão ao conectar-me ao RabbitMQ?

As causas comuns incluem:

  • Host ou porta incorretos : O hostname ou a porta do broker RabbitMQ na conexão do Unity Catalog está incorreto. A porta padrão para RabbitMQ é 5672.
  • Conectividade de rede : A conectividade de rede do plano de compute serverless para o seu broker RabbitMQ está bloqueada. Verifique suas regras de emparelhamento da VPC, grupo de segurança ou firewall.

Posso ler de várias filas RabbitMQ em um único pipeline?

Sim. Defina uma entrada de tabela por fila em ingestion_definition.objects. Cada fila é mapeada 1:1 para uma tabela de transmissão de destino. Um único pipeline usa uma conexão do Unity Catalog (um broker RabbitMQ). Para ingerir de vários brokers, criar pipelines separados.

Como posso monitorar o quão atrasada minha transmissão está em relação à fila?

Consulte view Métricas de transmissão. Sinais key para RabbitMQ:

  • Taxa de Entrada e Taxa de Processamento : a velocidade com que o conector consome da fila.
  • Profundidade da fila no lado do broker : Monitore isso pela interface do usuário de gerenciamento do RabbitMQ. Como as filas clássicas do RabbitMQ são baseadas em fila e não possuem um offset reproduzível, a profundidade da fila é o indicador definitivo de latência.

Por que minha transmissão não está retornando registros, embora eu ache que existam dados?

As causas comuns incluem:

  • Nome de fila incorreto : verifique se está consumindo da fila correta.
  • Consumidores Externos Concorrentes : O RabbitMQ entrega cada mensagem para exatamente um consumidor. Se outro consumidor (não-Spark) estiver lendo da mesma fila, o pipeline poderá receber menos mensagens do que o esperado.
  • Problemas de autenticação ou autorização : A conexão pode ter sido bem-sucedida, mas o usuário pode não ter permissão para consumir da fila. Verifique suas permissões do RabbitMQ (permissão de leitura na fila).
  • Mensagens já consumidas e confirmadas : ao contrário do Kafka, as filas clássicas do RabbitMQ não retêm mensagens após a confirmação. Se outro consumidor reconheceu os dados antes de o pipeline começar, não é possível reproduzi-los.

O que acontece com as mensagens se o pipeline travar antes de confirmá-las?

RabbitMQ garante a entrega pelo menos uma vez. Se o pipeline falhar ou um consumidor se desconectar antes de enviar uma confirmação de recebimento (ACK), as mensagens não confirmadas permanecem na fila e são reentregues ao reconectar. A coluna de metadados _redelivered está true para estas mensagens.

O conector pode garantir a entrega exatamente uma vez?

Não. O conector RabbitMQ gerenciado fornece semântica pelo menos uma vez. As filas clássicas do RabbitMQ não fornecem um identificador de mensagem exclusivo atribuído pelo broker, portanto, a deduplicação exata na camada do conector não é possível. Se você precisar de processamento com garantia de entrega única, deduplique a jusante usando uma chave específica do aplicativo (por exemplo, uma message_id definida pelo seu produtor, ou uma chave de negócios dentro do corpo da mensagem).

O conector oferece suporte a RabbitMQ Transmissões?

Não. O conector gerenciado suporta apenas filas clássicas do RabbitMQ. RabbitMQ transmissões usam um modelo diferente, baseado em offset.