Kafka测试问题之Producer数据send不到kafka中
原先Kafka中的/config/server.properties 中配置listeners=PLAINTEXT://:9092 没有对其进行修改
测试Kafka是否能够连接通畅,操作如下:
创建 topic:
bash kafka-topics.sh --create --bootstrap-server localhost:9092 --topic MyTopicOne --replication-factor 1 --partitions 3
创建Producer
bash kafka-console-producer.sh --broker-list 192.168.0.30:9092 --topic MyTopicTwo
创建Consumer
bash kafka-console-consumer.sh --topic MyTopicTwo --bootstrap-server 192.168.0.30:9092 --from-beginning
结果:
通过Console可以测试通过,之后通过代码进行测试
测试代码如下:
if (args.length == 0) {
System.out.println("YOU HIVE TO INPUT YOUR TOPIC");
System.exit(1);
}
Properties conf = new Properties();
// conf.put("--broker-list","192.168.0.30:9094");
conf.put("bootstrap.servers", "192.168.0.30:9092");
// conf.put("zookeeper","192.168.0.28:2181");
conf.put("acks", "all");
// conf.put("topic", args[0]);
conf.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer");
conf.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer");
KafkaProducer kafkaClient = new KafkaProducer<String, String>(conf);
for (int i = 0; i < 10; i++) {
kafkaClient.send(new ProducerRecord<String, String>("MyTopicTwo", Integer.toString(i), Integer.toString(i + 1)));
System.out.println("HIVE SEND ONE MESSAGE");
}
kafkaClient.close();
发现并不报错,但是kafka中的console消费者并没有接受到数据,在/tmp/kafka-log中对应Topic文件夹中的.log 也无数据 而且Kafka server日志也无错误???:
难受了。。。
之后想起来kafka中只管去pull数据,并不会去处理是否发送成功,所以并不会报错,所以怀疑自己kafka配置有问题,之后查看配置发现该配置没有设置host,又一次被自己的**所折服。。哎
更改如下: