package com.dnt.kafkademo;
import org.apache.kafka.clients.producer.KafkaProducer;
import org.apache.kafka.clients.producer.Producer;
import org.apache.kafka.clients.producer.ProducerRecord;
import org.apache.kafka.clients.producer.RecordMetadata;
import java.io.IOException;
import java.util.Properties;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.Future;
/**
* User: mzang
* Date: 2015-04-01
* Time: 14:22
*/
public class ProducerDemo {
private Producer<String, String> producer;
private void init() throws IOException {
Properties props = new Properties();
props.load(ProducerDemo.class.getClassLoader().getResourceAsStream("producer.properties"));
producer = new KafkaProducer<String, String>(props);
}
public ProducerDemo() throws IOException {
init();
}
public void sendMessage(String topic, String message) {
ProducerRecord<String, String> record =
new ProducerRecord<String, String>(topic, message);
Future<RecordMetadata> future = producer.send(record);
try {
RecordMetadata metadata = future.get();
System.out.println(metadata);
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
}
public void close() {
producer.close();
}
public static void main(String[] args) throws IOException {
ProducerDemo producerDemo = new ProducerDemo();
for (int i = 0; i < 10; i++) {
producerDemo.sendMessage("risklogging.idimodellogdatavo", "message " + i);
System.out.println("sent " + i);
try {
Thread.sleep(1);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
producerDemo.close();
}
}