Todos os produtos
Search
Central de documentação

ApsaraMQ for Kafka:Por que um cliente PHP apresenta um longo atraso ao enviar uma mensagem?

Última atualização: Jun 27, 2026

O atraso ocorre porque o PHP reinicializa um objeto KafkaProducer a cada envio. Cada inicialização exige conexão com cada broker e busca de metadados do cluster, o que adiciona mais de 100 ms em uma Virtual Private Cloud (VPC) e mais de 500 ms pela Internet.

Causa do problema

Antes de enviar uma mensagem, os produtores do Kafka precisam identificar o broker líder de cada partição. Isso requer uma solicitação de metadados para mapear tópicos em partições e partições em endereços de brokers. Em seguida, o produtor estabelece conexões com os brokers relevantes.

Na maioria das linguagens, cria-se um KafkaProducer apenas uma vez para reutilizá-lo em várias requisições. Um cliente Java, por exemplo, inicializa o produtor na partida, mantém as conexões com os brokers abertas e armazena os metadados em cache. Os envios subsequentes adicionam latência mínima.

O PHP geralmente opera em um modelo share-nothing, com uma requisição por processo. A menos que você gerencie explicitamente o ciclo de vida do produtor, cada requisição cria um novo KafkaProducer e repete toda a sequência de inicialização: busca de metadados, conexões com brokers e descoberta de líderes de partição. Essa reinicialização repetida é a principal causa do atraso.

Latência esperada

Rede

Sobrecarga por inicialização

VPC

> 100 ms

Internet

> 500 ms

Após a inicialização do produtor, os envios seguintes acrescentam latência mínima. Reutilizar o produtor elimina a sobrecarga de inicialização por mensagem.