Vous voulez développer une application qui se connecte à un serveur Kafka, et à l’heure actuelle le seul moyen que vous avez pour vous y connecter est un tunnel SSH. Mauvaise nouvelle : ça ne marchera pas sans cette astuce.
Le problème
Le problème n’apparaîtra pas avec les producteurs de messages, mais bien avec les consommateurs. En effet les messages Kafka contiennent des métadonnées, et quand votre consommateur en recevra un il essaiera de se connecter directement au broker de messages sans passer par votre tunnel, en utilisant pour ceci le nom d’hôte où est hébergé votre broker.
La solution
La solution est simple : il suffit d’éditer votre fichier hosts
qui se trouve sous /etc
sur les vrais systèmes et sous %windir%\system32\drivers\etc
sous W—–s et d’ajouter la ligne suivante :
[nom_de_l_hote_distant_tel_que_dans_le_message_d_erreur_du_consommateur] 127.0.0.1
Et si le nom d’hôte se trouve mappé à un DNS ?
Deux solutions : soit vous ajoutez un autre alias pour ce nom d’hôte dans votre fichier hosts
et vous utilisez ce deuxième alias pour vous y connecter, soit vous renseignez directement son IP dans la chaîne bootstrap.servers
de Kafka.
Besoin de tester ton niveau en développement informatique ?
Cet article vous a plu ? Vous aimerez sûrement aussi :
- #AstuceDeCode 20 : les transactions en JEE
- #AstuceDeCode 17 : filtrage et validation efficaces
- #AstuceDeCode 18 : la mise à jour de collections en Hibernate
Julien
Moi c’est Julien, ingénieur en informatique avec quelques années d’expérience. Je suis tombé dans la marmite étant petit, mon père avait acheté un Apple – avant même ma naissance (oui ça date !). Et maintenant je me passionne essentiellement pour tout ce qui est du monde Java et du système, les OS open source en particulier.
Au quotidien, je suis devops, bref je fais du dév, je discute avec les opérationnels, et je fais du conseil auprès des clients.