Kafka välityspalvelimen kautta: bootstrap toimii, broker-yhteydet epäonnistuvat
Selittää, miksi onnistunut Kafkan bootstrap-yhteys ei takaa välityspalvelimen kautta pääsyä jokaiseen löydettyyn brokeriin.
Bootstrap-yhteys voi onnistua, vaikka Kafka-asiakasohjelma ei vieläkään voi tuottaa tai kuluttaa. Bootstrap-palvelimet auttavat asiakasta löytämään klusterin; ne eivät välttämättä ole ainoat päätepisteet, joihin se ottaa yhteyttä.
Brokerin metatiedot sisältävät osoitteita, joita käytetään myöhemmissä yhteyksissä. Jos nämä nimet tai portit eivät ole tavoitettavissa aiottuun välityspalvelinreitin kautta, ensimmäinen onnistunut yhteys ei ratkaise loppua tehtävää.
Lue ilmoitetut päätepisteet
Vertaa bootstrap-osoitetta broker-osoitteisiin, jotka asiakas todella vastaanottaa. Julkinen bootstrap-alias voi johtaa yksityisiin ilmoitettuihin nimiin, eikä yhden paikallisen portin edelleenlähetys kirjoita automaattisesti uudelleen jokaista metatietojen osoitetta.
Tunnista myös välityspalvelinpolku, jota asiakasohjelman toteutus tukee. Java-järjestelmän SOCKS-ominaisuus ei takaa, että kirjaston NIO-pohjainen siirto käyttää JDK Socket -välityspalvelinmekanismia. Tarkista todellinen Kafka-asiakasohjelma ja verkkoyhteensopivuus sen sijaan, että olettaisit jokaisen Java-socketin noudattavan samaa asetusta.
Välityspalvelimen huomioiva asiakas tarvitsee sallitun reitin asianmukaisiin broker-päätepisteisiin. Verkkotason järjestely tarvitsee vastaavan tavoitettavuuden ja nimien selvityksen. Nämä ovat eri suunnitelmia, eikä kumpaakaan tarjota pelkästään listaamalla välityspalvelin bootstrap-palvelimeksi.
Pidä tietoturvaprotokollan ja todennuksen asetukset erillään. Välityspalvelin voi muodostaa TCP-reitin, kun taas TLS-identiteetti, SASL-todennus tai brokerin valtuutus epäonnistuu edelleen.
Kirjaa diagnosoinnissa, mikä päätepiste epäonnistui ja tuliko se staattisesta kokoonpanosta vai palautetuista metatiedoista. Tämä ero rajaa ongelmaa paljon enemmän kuin jo tavoitettavissa olleen päätepisteen toistuva muuttaminen.