Kafka през прокси: bootstrap работи, връзките към брокерите се провалят
Обяснява защо успешна bootstrap връзка на Kafka не осигурява достъп през прокси до всеки открит брокер.
Bootstrap връзката може да успее, докато Kafka клиентът все още не може да произвежда или консумира. Bootstrap сървърите помагат на клиента да открие клъстера; те не са непременно единствените крайни точки, с които той ще се свърже.
Метаданните на брокера съдържат адреси, използвани за последващи връзки. Ако тези имена или портове са недостъпни през предвидения прокси маршрут, първата успешна връзка не решава останалата част от задачата.
Прочетете обявените крайни точки
Сравнете bootstrap адреса с адресите на брокерите, които клиентът действително получава. Публичен bootstrap псевдоним може да води до частни обявени имена, а пренасочването на един локален порт не пренаписва автоматично всеки адрес в метаданните.
Също така определете прокси пътя, който поддържа реализацията на клиента. Системното SOCKS свойство на Java не е гаранция, че NIO-базираният транспорт на библиотека използва прокси механизма на JDK Socket. Проверете действителния Kafka клиент и мрежовата интеграция, вместо да предполагате, че всеки Java сокет спазва същата настройка.
Клиент, който познава прокси, се нуждае от разрешен маршрут до съответните крайни точки на брокерите. Мрежовата организация се нуждае от съответна достъпност и разрешаване на имена. Това са различни решения и нито едно от тях не се осигурява само чрез изброяване на прокси като bootstrap сървър.
Дръжте настройките за протокол за сигурност и удостоверяване отделно. Прокси може да установи TCP път, докато TLS идентичност, SASL удостоверяване или оторизация на брокера все още се провалят.
За диагностика отбележете коя крайна точка се е провалила и дали идва от статична конфигурация или от върнати метаданни. Това разграничение стеснява проблема много повече от многократната промяна на крайна точка, която вече е била достъпна.