Apache Kafka - bootstrap.servers中的url DNS解析失败(无法构建kafka生成器)

时间:2016-12-14 06:14:37

标签: apache-kafka

使用hostname构建kafka生成器时遇到问题。 这就是我的所作所为。

1)我将host.name,port config设置为 server.properties

listeners=PLAINTEXT://192.168.0.102:9092

port=9092
host.name=server002.sep.com

2)我将主机ip和别名添加到 / etc / hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.0.102 server002.sep.com

3)使用iptables设置防火墙

-A INPUT -p tcp -m tcp --dport 3888 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 2888 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 2181 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 9092 -j ACCEPT

4)我使用以下配置构建生产者。 我设置了" hostname:port"而不是" ip:port"。

  props = new Properties();

**props.put("bootstrap.servers", "server002.sep.com:9092");
  props.put("acks", "0");
  props.put("retries", "0");

运行生产者时发生异常。 这是错误日志。 我不明白为什么不能建造卡夫卡制片人。 请检查一下。 :)

Exception in thread "main" org.apache.kafka.common.KafkaException: **Failed to construct kafka producer**
at org.apache.kafka.clients.producer.KafkaProducer.<init>(KafkaProducer.java:321)
at org.apache.kafka.clients.producer.KafkaProducer.<init>(KafkaProducer.java:181)
at com.lgcns.sep.kafka.producer.MessageSender.createProducer(MessageSender.java:47)
at com.lgcns.sep.kafka.producer.MessageSender.getInstance(MessageSender.java:22)
at com.lgcns.jartest.producerTest.main(producerTest.java:27)

Caused by: org.apache.kafka.common.config.ConfigException: **DNS resolution failed for url in bootstrap.servers**: server002.sep.com:9092
at org.apache.kafka.clients.ClientUtils.parseAndValidateAddresses(ClientUtils.java:49)
at org.apache.kafka.clients.producer.KafkaProducer.<init>(KafkaProducer.java:269)
... 4 more

1 个答案:

答案 0 :(得分:0)

我正在使用2个vms。 1vm有kafka客户端java程序。第二个vm有所有kafka设置。在vm2的server.properties文件中添加属性&#34; host.name = hostname_of_the_vm2_not_localhost&#34;,将其添加为kafka客户端程序中的bootstrap.server值,该值位于vm1中。

你应该从vm1终端启动vm2,否则你会得到那个错误。我也一样。