Kafka sa pamamagitan ng proxy: gumagana ang bootstrap, nabigo ang mga koneksyon sa broker
Ipinaliliwanag kung bakit ang matagumpay na koneksyon ng Kafka bootstrap ay hindi nagsisiguro ng pag-abot ng proxy sa bawat natuklasang broker.
Maaaring magtagumpay ang koneksyon ng bootstrap habang ang kliyente ng Kafka ay hindi pa makagawa o makakonsumo. Ang mga bootstrap server ay tumutulong sa kliyente na matuklasan ang cluster; hindi sila kinakailangang ang tanging mga endpoint na kokonektahan nito.
Ang metadata ng broker ay naglalaman ng mga address na ginagamit para sa mga susunod na koneksyon. Kung ang mga pangalan o port na iyon ay hindi maabot sa pamamagitan ng inilaan na ruta ng proxy, hindi nilulutas ng unang matagumpay na koneksyon ang natitirang gawain.
Basahin ang mga inanunsyong endpoint
Ihambing ang address ng bootstrap sa mga address ng broker na aktwal na natatanggap ng kliyente. Ang isang pampublikong alias ng bootstrap ay maaaring humantong sa mga pribadong inanunsyong pangalan, at ang pagpapasa ng isang lokal na port ay hindi awtomatikong nagsusulat muli ng bawat address sa metadata.
Tukuyin din ang rutang proxy na sinusuportahan ng implementasyon ng kliyente. Ang property na SOCKS ng Java system ay hindi garantiya na ang transport na nakabatay sa NIO ng isang library ay gumagamit ng mekanismo ng proxy ng JDK Socket. Suriin ang aktwal na kliyente ng Kafka at ang integrasyon ng network sa halip na ipagpalagay na ang bawat socket ng Java ay gumagalang sa parehong setting.
Ang kliyenteng may kamalayan sa proxy ay nangangailangan ng pinapayagang ruta patungo sa mga kaugnay na endpoint ng broker. Ang kaayusan sa antas ng network ay nangangailangan ng katumbas na pag-abot at paglutas ng pangalan. Ito ay magkaibang disenyo, at wala sa kanila ang ibinibigay sa pamamagitan lamang ng paglilista ng proxy bilang bootstrap server.
Paghiwalayin ang mga setting ng protocol ng seguridad at pagpapatotoo. Ang proxy ay makakapagtatag ng rutang TCP habang ang pagkakakilanlan ng TLS, pagpapatotoo ng SASL o awtorisasyon ng broker ay nabigo pa rin.
Para sa diagnosis, tandaan kung aling endpoint ang nabigo at kung nagmula ito sa static na configuration o sa ibinalik na metadata. Ang pagkakaibang iyon ay higit na nagpapaliit ng problema kaysa sa paulit-ulit na pagpapalit ng endpoint na naabot na.