IDEA使用java代码连接单节点Kafka连接失败问题解决

2018-11-10 17:03:06,060] WARN [Producer clientId=producer-1] Connection to node -1 could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient)
[2018-11-10 17:03:06,163] WARN [Producer clientId=producer-1] Connection to node -1 could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient)
[2018-11-10 17:03:06,314] WARN [Producer clientId=producer-1] Connection to node -1 could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient)
[2018-11-10 17:03:06,517] WARN [Producer clientId=producer-1] Connection to node -1 could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient)
[2018-11-10 17:03:06,870] WARN [Producer clientId=producer-1] Connection to node -1 could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient)
[2018-11-10 17:03:07,778] WARN [Producer clientId=producer-1] Connection to node -1 could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient)
[2018-11-10 17:03:08,835] WARN [Producer clientId=producer-1] Connection to node -1 could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient)

单节点kafka进行idea连接调试时一直显示这个错误,现将我的解决办法贴出来。

  1. 首先要在kafka/config这个目录下找到server.properties这个配置文件

  2. 其次将listeners = PLAINTEXT://your.host.name:9092这个属性配置为你的IP地址
    注意此时一定不要用hostname的形式,最好是使用IP地址的形式

  3. 重新启动kafka,单节点模式启动kafka/bin/kafka-server-start.sh -daemon kafka/config/server.properties

  4. 启动完成后使用jps命令查看是否启动成功
    在此时如果发现不能正常启动kafka,则去/tmp这个目录下删除kafka-logs这个目录,直接用rm -rf命令

  5. 此时可以重新创建一个主题kafka/bin/kafka-topics.sh --create --zookeeper 192.168.109.190:2181 --replication-factor 1 --partitions 1 --topic test7
    同样注意,此处一定要使用IP地址的形式,踩了无数坑,此处一定要使用IP地址形式!!!

  6. 先进行生产者测试kafka/bin/kafka-console-producer.sh --broker-list 192.168.109.190:9092 --topic test7
    同样,此处一定要使用IP地址的形式

  7. 此时查看消费者是否能够读取消息kafka/bin/kafka-console-consumer.sh --bootstrap-server 192.168.109.190:9092 --topic test7 --from-beginning
    同样,此处一定要使用IP地址的形式

  8. 在你的IDEA用java代码进行测试,经过测试可以使用

综上所述,在用IDEA连接kafka进行测试时,如果遇到无法连接的问题,一定要注意IP地址,全部使用IP地址的形式进行尝试。

贴上java代码

import org.apache.kafka.clients.producer.KafkaProducer;
import org.apache.kafka.clients.producer.Producer;
import org.apache.kafka.clients.producer.ProducerRecord;

import java.util.Properties;

public class ProducerDemo {
     public static void main(String args[]){
         Properties properties = new Properties();
         properties.put("bootstrap.servers","1:9092");
         properties.put("key.serializer","org.apache.kafka.common.serialization.StringSerializer");
         properties.put("value.serializer","org.apache.kafka.common.serialization.StringSerializer");

         Producer producer = new KafkaProducer(properties);

             try{
                 for (int i=0;i<=99;i++){
                 producer.send(new ProducerRecord("test7","sinian","Hello Kafka"));
                 }
             }catch (Exception e){
                 e.printStackTrace();
             }
             finally {
                 producer.close();
             }
        }
}

你可能感兴趣的:(Hadoop错误总结)