Puisque je ne peux pas encore commenter, je vais poster ceci comme une "réponse", en complément de la réponse de M.Situations.
Dans le même document qu'il met en lien, il y a cette information sur le listener qui est utilisé par un client KAFKA ( https://cwiki.apache.org/confluence/display/KAFKA/KIP-103%3A+Séparation+du+trafic+intérieur+et+extérieur ) :
Comme indiqué précédemment, les clients ne voient jamais les noms des auditeurs et font des demandes de métadonnées exactement comme avant. La différence est que la liste des points de terminaison qu'ils reçoivent en retour est limitée au nom de l'auditeur du point de terminaison où ils ont fait la demande.
C'est important car selon l'URL que vous utilisez dans votre configuration bootstrap.servers, ce sera l'URL* que le client récupérera si elle est mappée dans advertised.listeners (je ne sais pas quel est le comportement si le listener n'existe pas).
Notez aussi ceci :
L'exception est constituée par les consommateurs basés sur ZooKeeper. Ces consommateurs récupèrent les informations d'enregistrement des courtiers directement à partir de ZooKeeper et choisiront le premier listener avec PLAINTEXT comme protocole de sécurité (le seul protocole de sécurité qu'ils supportent).
Comme exemple de configuration de courtier (pour tous les courtiers du cluster) :
advertised.listeners=EXTERNAL://XXXXX.compute-1.amazonaws.com:9990,INTERNAL://ip-XXXXX.ec2.internal:9993
inter.broker.listener.name=INTERNAL
listener.security.protocol.map=EXTERNAL:SSL,INTERNAL:PLAINTEXT
Si le client utilise XXXXX.compute-1.amazonaws.com:9990 pour se connecter, la récupération des métadonnées se fera auprès de ce courtier. Cependant, l'URL de retour à utiliser avec le coordinateur ou le chef de groupe pourrait être 123.compute-1.amazonaws.com:9990* (une machine différente !). Cela signifie que la correspondance est effectuée sur le nom de l'auditeur tel qu'annoncé par le KIP-103, indépendamment de l'URL réelle (nœud).
Comme la carte de protocole pour EXTERNAL est SSL, cela vous obligerait à utiliser un keystore SSL pour vous connecter.
Si, par contre, vous vous trouvez dans AWS, par exemple, vous pouvez alors envoyer ip-XXXXX.ec2.internal:9993 et la connexion correspondante sera en texte clair, conformément à la carte de protocole.
Cela est particulièrement nécessaire dans le domaine IaaS où, dans mon cas, les courtiers et les consommateurs vivent sur AWS, tandis que mon producteur vit sur le site d'un client, ce qui nécessite des protocoles de sécurité et des écouteurs différents.
EDIT : L'ajout de règles entrantes est également beaucoup plus facile maintenant que vous avez différents ports pour différents clients (courtiers, producteurs, consommateurs).
EDIT2 : Cet article est un excellent guide approfondi si ce qui précède n'est toujours pas clair : https://rmoff.net/2018/08/02/kafka-listeners-explained/