Kafka a través d'un proxy: el bootstrap funciona, les connexions als brokers fallen
Explica per què una connexió bootstrap de Kafka correcta no garanteix l'accés del proxy a tots els brokers descoberts.
Una connexió bootstrap pot funcionar mentre el client de Kafka encara no pot produir ni consumir. Els servidors bootstrap ajuden el client a descobrir el clúster; no són necessàriament els únics punts finals amb què es connectarà.
Les metadades del broker contenen adreces que s'utilitzen per a connexions posteriors. Si aquests noms o ports no són accessibles per la ruta de proxy prevista, la primera connexió correcta no resol la resta de la feina.
Llegeix els punts finals anunciats
Compara l'adreça bootstrap amb les adreces de broker que el client rep realment. Un àlies bootstrap públic pot portar a noms anunciats privats, i reenviar un sol port local no reescriu automàticament totes les adreces de les metadades.
Identifica també la ruta de proxy que admet la implementació del client. Una propietat SOCKS del sistema Java no garanteix que el transport basat en NIO d'una biblioteca utilitzi el mecanisme de proxy de Socket del JDK. Comprova el client de Kafka real i la integració de xarxa en lloc de suposar que tots els sockets Java respecten la mateixa configuració.
Un client conscient del proxy necessita una ruta permesa als punts finals de broker corresponents. Una disposició a nivell de xarxa necessita la connectivitat i la resolució de noms corresponents. Són dissenys diferents i cap dels dos no s'obté només llistant un proxy com a servidor bootstrap.
Mantingues separades la configuració del protocol de seguretat i la d'autenticació. Un proxy pot establir una ruta TCP mentre la identitat TLS, l'autenticació SASL o l'autorització del broker encara fallen.
Per diagnosticar, anota quin punt final ha fallat i si prové de la configuració estàtica o de metadades retornades. Aquesta distinció acota el problema molt més que canviar repetidament un punt final que ja era accessible.