Kafka melalui proksi: bootstrap berfungsi, sambungan broker gagal
Menjelaskan sebab sambungan bootstrap Kafka yang berjaya tidak menjamin capaian proksi ke setiap broker yang ditemui.
Sambungan bootstrap boleh berjaya sementara klien Kafka masih tidak dapat menghasilkan atau menggunakan. Pelayan bootstrap membantu klien menemui kluster; ia tidak semestinya satu-satunya titik akhir yang akan dihubungi.
Metadata broker mengandungi alamat yang digunakan untuk sambungan kemudian. Jika nama atau port itu tidak boleh dicapai melalui laluan proksi yang dimaksudkan, sambungan pertama yang berjaya tidak menyelesaikan baki kerja.
Baca titik akhir yang diiklankan
Bandingkan alamat bootstrap dengan alamat broker yang sebenarnya diterima klien. Alias bootstrap awam boleh membawa kepada nama teriklan peribadi, dan pemajuan satu port tempatan tidak menulis semula setiap alamat dalam metadata secara automatik.
Kenal pasti juga laluan proksi yang disokong oleh pelaksanaan klien. Sifat SOCKS sistem Java bukan jaminan bahawa pengangkutan berasaskan NIO sesuatu pustaka menggunakan mekanisme proksi Socket JDK. Periksa klien Kafka sebenar dan integrasi rangkaian dan bukannya menganggap setiap soket Java mematuhi tetapan yang sama.
Klien yang sedar proksi memerlukan laluan dibenarkan ke titik akhir broker berkenaan. Susunan peringkat rangkaian memerlukan kebolehcapaian dan penyelesaian nama yang sepadan. Ini reka bentuk berbeza, dan tiada satu pun disediakan hanya dengan menyenaraikan proksi sebagai pelayan bootstrap.
Asingkan tetapan protokol keselamatan dan pengesahan. Proksi boleh mewujudkan laluan TCP sementara identiti TLS, pengesahan SASL atau kebenaran broker masih gagal.
Untuk diagnosis, catat titik akhir mana yang gagal dan sama ada ia datang daripada konfigurasi statik atau metadata yang dikembalikan. Perbezaan itu menyempitkan masalah jauh lebih baik daripada menukar titik akhir yang sudah boleh dicapai berulang kali.