KafkaProducer未成功将消息发送到队列中

我在Windows PC上构建了一个小测试环境,并记下以下代码来测试kafka(使用org.apache.kafka中的kafka_2.10:0.9.0.1)。

package iii.functiontesting; import java.text.ParseException; import java.util.Properties; import org.apache.kafka.clients.producer.KafkaProducer; import org.apache.kafka.clients.producer.ProducerRecord; /** * Hello world! * */ public class test4 { public static void main( String[] args ) throws ParseException { Properties producerProps=new Properties(); producerProps.put("bootstrap.servers", "localhost:9092"); producerProps.put("serializer.class",org.apache.kafka.common.serialization.StringSerializer.class.getName()); producerProps.put("key.serializer",org.apache.kafka.common.serialization.StringSerializer.class.getName()); producerProps.put("value.serializer",org.apache.kafka.common.serialization.StringSerializer.class.getName()); producerProps.put("request.required.acks","1"); KafkaProducer kafkawriter= new KafkaProducer(producerProps); ProducerRecord msg=new ProducerRecord("TEST3","ImKey","teststring1"); kafkawriter.send(msg); } } 

我使用以下命令检查消息是否正确写入队列

D:\ Work \ kafkaenv \ kafka_2.10-0.9.0.1 \ bin \ windows>。\ kafka-console-consumer.bat –zookeeper localhost:2181 –topic TEST3 – from-beginning

但是,我发现kafka-console-consumer没有显示任何内容。

我怀疑我的kafka服务器运行不正常,所以我使用console-producer进行测试。

D:\ Work \ kafkaenv \ kafka_2.10-0.9.0.1 \ bin \ windows>。\ kafka-console-producer.bat –broker-list localhost:9092 –topic TEST3

AAAAA

这次我可以看到aaaaa清楚地显示在控制台消费者之下。 我无法弄清楚会发生什么。 谁能帮我?

在终止程序之前,您必须调用KafkaProducer#flush [或] KafkaProducer#close方法。

实际上,生产者在将记录发送给代理之前缓冲记录。 请参阅Kafka Producer配置中的buffer.memorybatch.size

 kafkawriter.send(msg); kafkawriter.close();