运行kafka producer时没有错误或输出记录

2nbm6dog  于 2021-06-04  发布在  Kafka
关注(0)|答案(1)|浏览(477)

我有下面的Kafka生产者代码,当我运行它,我没有看到任何错误,记录没有显示在消费者控制台。我正在使用https://kafka.apache.org/quickstart 启动Zookeeper,经纪人。我创建了一个主题并启动了consumer。

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

import java.util.Properties;

public class SampleProducerCreator {

    Properties properties =  new Properties();

    private void init(){
        properties.setProperty("bootstrap.servers", "localhost:9092");
        properties.setProperty("kafka.topic.name", "quickstart-events");
        KafkaProducer<String, String> producer = new KafkaProducer<>(this.properties,
                new StringSerializer(), new StringSerializer());
        for(int i=0; i<4 ; i++){
            String payload = "Test";
            ProducerRecord<String, String> record = new ProducerRecord<>(properties.getProperty("kafka.topic.name"), payload);
            producer.send(record);
        }
        producer.close();
    }

   public static void main(String[] args){
        SampleProducerCreator sampleProducerCreator = new SampleProducerCreator();
        sampleProducerCreator.init();
   }
}
zvms9eto

zvms9eto1#

可能存在到代理的连接问题。如果没有向java项目添加slf4j实现,则不会打印日志。
也, producer.send(record) 返回一个未来。您可以使用这个未来来阻止并等待响应,或者更好地使用替代方法 send(record, callback) javadoc打印出代理返回的异常或记录元数据。

相关问题