Kafka através de um proxy: o bootstrap funciona, as conexões aos brokers falham
Explica por que uma conexão bootstrap do Kafka bem-sucedida não garante acesso do proxy a cada broker descoberto.
Uma conexão bootstrap pode funcionar enquanto o cliente Kafka ainda não consegue produzir nem consumir. Os servidores bootstrap ajudam o cliente a descobrir o cluster; eles não são necessariamente os únicos endpoints com que ele se conectará.
Os metadados do broker contêm endereços usados para conexões posteriores. Se esses nomes ou portas não forem acessíveis pela rota de proxy pretendida, a primeira conexão bem-sucedida não resolve o resto do trabalho.
Leia os endpoints anunciados
Compare o endereço bootstrap com os endereços de broker que o cliente realmente recebe. Um alias bootstrap público pode levar a nomes anunciados privados, e encaminhar uma única porta local não reescreve automaticamente todos os endereços nos metadados.
Identifique também o caminho de proxy suportado pela implementação do cliente. Uma propriedade SOCKS do sistema Java não garante que o transporte baseado em NIO de uma biblioteca use o mecanismo de proxy de Socket do JDK. Verifique o cliente Kafka real e a integração de rede em vez de supor que cada socket Java respeita a mesma configuração.
Um cliente ciente do proxy precisa de uma rota permitida para os endpoints de broker relevantes. Uma disposição em nível de rede precisa da conectividade e da resolução de nomes correspondentes. São projetos diferentes, e nenhum deles é fornecido apenas listando um proxy como servidor bootstrap.
Mantenha separadas as configurações de protocolo de segurança e de autenticação. Um proxy pode estabelecer uma rota TCP enquanto a identidade TLS, a autenticação SASL ou a autorização do broker ainda falham.
Para diagnóstico, anote qual endpoint falhou e se veio da configuração estática ou de metadados retornados. Essa distinção restringe o problema muito mais do que alterar repetidamente um endpoint que já era acessível.