Discussion:
Caused by: org.apache.kafka.common.errors.TimeoutException: Failed to update metadata after 60000 ms.
Bhargav Maddikera
2016-02-08 12:06:25 UTC
Permalink
Hi,

I try executing the code

Properties props = new Properties();

props.put("bootstrap.servers", "localhost:2181");
props.put("metadata.broker.list","localhost:9092");
props.put("request.required.acks", "1");
props.put("retries", 4);
// props.put("batch.size", 16384);
// props.put("linger.ms", 1);
// props.put("buffer.memory", 33554432);
props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer");
props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer");

Producer<String, String> producer = new KafkaProducer(props);
int maxMessages = 1000;

int count = 0;
while(count < maxMessages) {
producer.send(new ProducerRecord<String, String>("test", "message --- #"+count++)).get();
System.out.println("Message send.."+count);
}
producer.close();



but I get Caused by: org.apache.kafka.common.errors.TimeoutException: Failed to update metadata after 60000 ms.


But when I do,

// Properties properties = new Properties();
// properties.put("metadata.broker.list","localhost:9092");
// properties.put("serializer.class","kafka.serializer.StringEncoder");
// properties.put("partitioner.class", "SimplePartitioner");
// properties.put("request.required.acks", "1");
// ProducerConfig producerConfig = new ProducerConfig(properties);
// kafka.javaapi.producer.Producer<String,String> producer = new kafka.javaapi.producer.Producer<String, String>(producerConfig);
// SimpleDateFormat sdf = new SimpleDateFormat();
// KeyedMessage message =new KeyedMessage("test","1","After Restart210");
// System.out.println(message.key());
// producer.send(message);
// producer.close();
// System.out.println("done");

It works fine.

Regards.
Bhargav.
Jun Rao
2016-02-08 17:17:03 UTC
Permalink
It seems that you put in the wrong port in the following statement. Kafka's
default port is 9092. 2181 is for Zookeeper.
props.put("bootstrap.servers", "localhost:2181");

Thanks,

Jun

On Mon, Feb 8, 2016 at 4:06 AM, Bhargav Maddikera <
Post by Bhargav Maddikera
Hi,
I try executing the code
Properties props = new Properties();
props.put("bootstrap.servers", "localhost:2181");
props.put("metadata.broker.list","localhost:9092");
props.put("request.required.acks", "1");
props.put("retries", 4);
// props.put("batch.size", 16384);
// props.put("linger.ms", 1);
// props.put("buffer.memory", 33554432);
props.put("key.serializer",
"org.apache.kafka.common.serialization.StringSerializer");
props.put("value.serializer",
"org.apache.kafka.common.serialization.StringSerializer");
Producer<String, String> producer = new KafkaProducer(props);
int maxMessages = 1000;
int count = 0;
while(count < maxMessages) {
producer.send(new ProducerRecord<String,
String>("test", "message --- #"+count++)).get();
System.out.println("Message send.."+count);
}
producer.close();
Failed to update metadata after 60000 ms.
But when I do,
// Properties properties = new Properties();
// properties.put("metadata.broker.list","localhost:9092");
//
properties.put("serializer.class","kafka.serializer.StringEncoder");
// properties.put("partitioner.class", "SimplePartitioner");
// properties.put("request.required.acks", "1");
// ProducerConfig producerConfig = new
ProducerConfig(properties);
// kafka.javaapi.producer.Producer<String,String> producer =
new kafka.javaapi.producer.Producer<String, String>(producerConfig);
// SimpleDateFormat sdf = new SimpleDateFormat();
// KeyedMessage message =new KeyedMessage("test","1","After Restart210");
// System.out.println(message.key());
// producer.send(message);
// producer.close();
// System.out.println("done");
It works fine.
Regards.
Bhargav.
Loading...