Ho un produttore molto semplice che sto eseguendo eclipse sulla mia macchina locale Windows ... Quello che voglio veramente è far passare un messaggio a kafka, quindi sarò in grado di visualizzare il broker tramite zookeeper. Giusto per vedere come funziona la comunicazione da un capo all'altro ... quindi ecco qui il codice:Invia KafkaProducer dalla macchina locale alla sandbox di hortonworks su virtualbox
Properties props = new Properties();
props.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG,"localhost:9020");
props.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG,StringSerializer.class.getName());
props.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG,StringSerializer.class.getName());
KafkaProducer<String,String> producer = new KafkaProducer<String,String>(props);
boolean sync = true;
String topic="mytopic";
String key = "mykey";
String value = "myvalue";
ProducerRecord<String,String> producerRecord = new ProducerRecord<String,String>(topic, key, value);
if (sync) {
producer.send(producerRecord).get();
} else {
producer.send(producerRecord);
}
producer.close();
Tuttavia dopo qualche tempo ricevo
Exception in thread "main" java.util.concurrent.ExecutionException: org.apache.kafka.common.errors.TimeoutException: Failed to update metadata after 60000 ms.
at org.apache.kafka.clients.producer.KafkaProducer$FutureFailure.<init>(KafkaProducer.java:437)
at org.apache.kafka.clients.producer.KafkaProducer.send(KafkaProducer.java:352)
at org.apache.kafka.clients.producer.KafkaProducer.send(KafkaProducer.java:248)
at kafkaProducer.TestProducer.main(TestProducer.java:30) Caused by: org.apache.kafka.common.errors.TimeoutException: Failed to update metadata after 60000 ms.
ho Hortonworks configurazione sandbox, con Kafka corsa, ma io non riesco a connetterci ad esso. Ho provato il port forwarding nelle configurazioni di rete della virtualbox ma ho ancora lo stesso problema. C'è qualcosa che mi manca?