简体   繁体   English

KafkaProducer连接被拒绝

[英]KafkaProducer Connection refused

I trying to send some data to kafka, but when i run my code i got 我试图向kafka发送一些数据,但是当我运行代码时,我得到了

13:20:17.688 [kafka-producer-network-thread | producer-1] 
DEBUG org.apache.kafka.clients.NetworkClient - Node -1 disconnected.
13:20:17.784 [kafka-producer-network-thread | producer-1] DEBUG org.apache.kafka.clients.NetworkClient - Initialize connection to node -1 for sending metadata request
13:20:17.784 [kafka-producer-network-thread | producer-1] DEBUG org.apache.kafka.clients.NetworkClient - Initiating connection to node -1 at kafkaAdress:2181.
13:20:18.781 [kafka-producer-network-thread | producer-1] DEBUG org.apache.kafka.common.network.Selector - Connection with kafkaAdress/addressId disconnected
java.net.ConnectException: Connection refused: no further information
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
at sun.nio.ch.SocketChannelImpl.finishConnect(Unknown Source)
at org.apache.kafka.common.network.PlaintextTransportLayer.finishConnect(PlaintextTransportLayer.java:54)
at org.apache.kafka.common.network.KafkaChannel.finishConnect(KafkaChannel.java:72)
at org.apache.kafka.common.network.Selector.poll(Selector.java:274)
at org.apache.kafka.clients.NetworkClient.poll(NetworkClient.java:256)
at org.apache.kafka.clients.producer.internals.Sender.run(Sender.java:216)
at org.apache.kafka.clients.producer.internals.Sender.run(Sender.java:128)
at java.lang.Thread.run(Unknown Source)

Code: 码:

    String topic = "TST";
    Properties props = new Properties();
    props.put("bootstrap.servers", "kafkaAdress:2181");
    props.put("key.serializer",      "org.apache.kafka.common.serialization.StringSerializer");
    props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer");
    KafkaProducer<String, String> producer = new KafkaProducer<>(props);
    for(int i = 0; i < 100; i++)
        producer.send(new ProducerRecord<String, String>(topic, "TestMessage"));    
    producer.close();

Does anyone know how to solve this? 有谁知道如何解决这个问题?

I use kafka 0.9.1 我使用kafka 0.9.1

Since Kafka 0.9 the producer API no longer uses Zookeeper. 从Kafka 0.9开始,生产者API不再使用Zookeeper。

The property bootstrap.servers should contain a list of brokers for establishing the initial connection to the Kafka cluster. bootstrap.servers属性应包含用于建立与Kafka集群的初始连接的代理列表。

2181 is the zookeeper port. 2181是动物园管理员端口。 The default port for a broker is 9092. 代理的默认端口为9092。

You have some mistake on your configuration, bootstrap.server is the Kafka broker's address, not zookeeper. 您的配置有误,bootstrap.server是Kafka经纪人的地址,而不是zookeeper。 Producer always use the broker's address to publish messages. 生产者总是使用经纪人的地址来发布消息。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM