bash-4.4# ./kafka-console-producer.sh --broker-list kafka1:9092 --topic testTopic
[2020-04-01 01:39:16,119] WARN Couldn't resolve server kafka1:9092 from bootstrap.servers as DNS resolution failed for kafka1 (org.apache.kafka.clients.ClientUtils)
org.apache.kafka.common.KafkaException: Failed to construct kafka producer
at org.apache.kafka.clients.producer.KafkaProducer.<init>(KafkaProducer.java:432)
at org.apache.kafka.clients.producer.KafkaProducer.<init>(KafkaProducer.java:298)
at kafka.tools.ConsoleProducer$.main(ConsoleProducer.scala:45)
at kafka.tools.ConsoleProducer.main(ConsoleProducer.scala)
Caused by: org.apache.kafka.common.config.ConfigException: No resolvable bootstrap urls given in bootstrap.servers
at org.apache.kafka.clients.ClientUtils.parseAndValidateAddresses(ClientUtils.java:88)
at org.apache.kafka.clients.ClientUtils.parseAndValidateAddresses(ClientUtils.java:47)
at org.apache.kafka.clients.producer.KafkaProducer.<init>(KafkaProducer.java:407)
... 3 more
原因是启动命令中没有用ip,用了容器名
两个解决办法
方法1、改成:./kafka-console-producer.sh --broker-list 容器ip:9092 --topic testTopic即可解决
方法2、修改物理机的host文件
加上
172.16.116.136 test1.kafka.inner.sunlands
172.16.100.203 test2.kafka.inner.sunlands
172.16.117.226 test3.kafka.inner.sunlands