2017-03-09 1 views
1

J'ai installé le logiciel Kafka sur EC2. Mon problème est la connexion au courtier de l'extérieur de l'AWS. Tout fonctionne pour moi de l'intérieur.Courtier Kafka sur AWS - configuration IP

Donc, je peux démarrer le courtier, et à la fois kafka-console-producteur et les travaux de consommation (à partir du même serveur). J'ai les ports 2181 et 9092 ouverts à l'emplacement à distance, vers l'endroit d'où je voudrais utiliser le producteur. Donc, à partir de ma machine de développement (local) .. Si je fais telnet 9092 - il me connecte. Si j'essaie d'utiliser kafka-console-producer, j'obtiens cette erreur.

[2017-03-09 15:04:44,971] ERROR Error when sending message to topic topic2 with key: null, value: 5 bytes with error: (org.apache.kafka.clients.producer.internals.ErrorLoggingCallback) org.apache.kafka.common.errors.TimeoutException: Expiring 1 record(s) for topic2-0: 1521 ms has passed since batch creation plus linger time

J'ai essayé toutes sortes de combinaison avec le fichier et server.properties - avec les touches listeners et advertised.listeners.

J'apprécierais vraiment un peu d'aide ...

Répondre

0

Il peut être causé par le fait que le nom d'hôte public/IP des machines AWS ne peut pas être utilisé à l'intérieur AWS. Si c'est le cas, vous devez un peu fudge. 2 choses sont nécessaires:

  • assurez-vous que vous définissez advertised.listeners à votre privée adresse
  • dans vos locaux/etc/hosts, lient le nom d'hôte local de aws (par exemple ip-10-0-0-. 1.eu-west-1.compute.internal) au public IP

Ensuite, assurez-vous de n'utiliser que le nom d'hôte privé. Cela a été la cause première pour moi de nombreux problèmes bizarres ne donnant aucun journal.