ПРЕДУПРЕДИТЬ org.apache.кафка.клиенты.NetworkClient — [Producer ClientID=producer-1] Загрузочный брокер 127.0.0.1:9092 (id: -1 rack: null) отключен

#java #maven #apache-kafka #producer

#java #maven #apache-кафка #производитель

Вопрос:

Я пытаюсь создать Kafka producer с помощью Java-программы. но когда я запускаю программу, я получаю несколько предупреждений, ошибок нет, но производитель не отправляет данные, и предупреждение выглядит так, как показано ниже.

 [kafka-producer-network-thread | producer-1] WARN org.apache.kafka.clients.NetworkClient - [Producer clientId=producer-1] Bootstrap broker 127.0.0.1:9092 (id: -1 rack: null) disconnected

[kafka-producer-network-thread | producer-1] WARN org.apache.kafka.clients.NetworkClient - [Producer clientId=producer-1] Connection to node -1 (/127.0.0.1:9092) could not be established. Broker may not be available.
  

POM.XML файл

 <?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>KafkaProject</artifactId>
    <version>1.0-SNAPSHOT</version>

    <dependencies>

        <!-- https://mvnrepository.com/artifact/org.apache.kafka/kafka-clients -->
        <dependency>
            <groupId>org.apache.kafka</groupId>
            <artifactId>kafka-clients</artifactId>
            <version>2.6.0</version>
        </dependency>


        <!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-simple -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-simple</artifactId>
            <version>1.7.30</version>
        </dependency>

    </dependencies>

</project>
  

First_producer.java Файл

 package Kafka;

import org.apache.kafka.clients.producer.KafkaProducer;
import org.apache.kafka.clients.producer.ProducerConfig;
import org.apache.kafka.clients.producer.ProducerRecord;
import org.apache.kafka.common.serialization.StringSerializer;

import java.util.Properties;

public class First_Producer {
    public static void main(String[] args) {


        String bootstrapServer = "127.0.0.1:9092";

        //create producer properties
        Properties properties = new Properties();
        properties.setProperty(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG,bootstrapServer);
        properties.setProperty(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName());
        properties.setProperty(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG,StringSerializer.class.getName());

        //create the producer
        KafkaProducer<String, String> producer= new KafkaProducer<String,String>(properties);

        //create a producer record
        ProducerRecord<String, String>  record = new ProducerRecord<String,String>("first_topic","hello_world");

        //send data
        producer.send(record);
        producer.flush();
        producer.close();

    }
}


  

Команда потребителя в оболочке

 kafka-console-consumer --bootstrap-server 127.0.0.1:9092 --topic first_topic --group my-first-app

  

Итак, кто-нибудь может помочь мне решить эту проблему???

Комментарии:

1. Вы запустили брокера? Если да, то прослушивает ли он 9092?

2. я уже запустил брокера, но он не работает

3. У меня было такое же предупреждение. Я перезапустил как zookeeper, так и сервер, и он снова начал работать.

Ответ №1:

В вашем журнале указано:

Брокер может быть недоступен.

Обновите свой config/server.properties файл с правильным IP / именем хоста для прослушивателя свойств.

 listeners=PLAINTEXT://X.X.X.X:9092
  

И используйте ту же конфигурацию IP и порта с вашей конфигурацией производителя для

 ProducerConfig.BOOTSTRAP_SERVERS_CONFIG
  

Убедитесь, что ваш номер порта доступен снаружи с сервера, если вы запускаете своего производителя за пределами сервера, используя iptable / firewall config .

Комментарии:

1. Большое вам спасибо, я также страдаю из-за брандмауэра