我的设置:
因此,我刚刚完成了一个在VM
上运行且地址为192.168.0.100
的kafka实例的配置。我可以使用kafka-consome-consumer.sh
从同一VM连接到该实例,也可以使用host
从kafkatool
计算机(VM外部)连接到该实例。
我的问题:我现在正尝试使用Java(在host
上使用IntellijIDEA)向实例生成消息,但是该应用无法连接。我收到以下错误:
Topic ABC not present in metadata after 60000 ms.
这是我的Kafka server.properties
地址配置:
############################# Socket Server Settings #############################
listeners=PLAINTEXT://0.0.0.0:9092
advertised.listeners=PLAINTEXT://192.168.0.100:9092
这是我的生产者代码:
Properties properties = new Properties();
properties.setProperty(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, "192.168.0.100:9092");
properties.setProperty(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName());
properties.setProperty(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName());
properties.put("retries", 0);
Producer<String, String> producer = new KafkaProducer<String, String>(properties);
ProducerRecord<String, String> record = new ProducerRecord<String, String>("trucks_GPS", "Hello from a JAVA app");
producer.send(record, new Callback() {
public void onCompletion(RecordMetadata recordMetadata, Exception e) {
if(e != null){
System.out.println(e.getMessage());
}
else{
System.out.println("success");
}
}
});
producer.flush();
producer.close();
确切的错误日志要求
org.apache.kafka.common.errors.TimeoutException: Topic trucks_GPS not present in metadata after 60000 ms.