kafka循环发送消息,达到压测的目的
import org.apache.kafka.clients.producer.KafkaProducer;
import org.apache.kafka.clients.producer.ProducerRecord;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Properties;
import java.util.UUID;
public class KafkaProducerDemo {
private final KafkaProducer<String, String> producer;
public final static String TOPIC = "test";
private KafkaProducerDemo() {
Properties props = new Properties();
props.put("bootstrap.servers","127.0.0.1:9092");
props.put("zookeeper.connect","127.0.0.1:2181");
props.put("acks", "all");
props.put("retries", 0);
props.put("batch.size", 16384);
props.put("linger.ms", 1);
props.put("buffer.memory", 33554432);
props.put("key.serializer",
"org.apache.kafka.common.serialization.IntegerSerializer");
props.put("value.serializer",
"org.apache.kafka.common.serialization.StringSerializer");
producer = new KafkaProducer<String, String>(props);
}
public void produce() throws InterruptedException {
int messageNo = 0;
final int COUNT = 1;
while(messageNo < COUNT) {
String data = "{\"test\":\"\test\", \"uuid\":\""+ UUID.randomUUID().toString()+"\"}";
System.out.println("data:"+data);
try {
producer.send(new ProducerRecord<String, String>(TOPIC, data));
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("发送消息,第"+ ++messageNo +"条");
Thread.sleep(1000);
}
producer.close();
}
static String dateFormat() {
Date date = new Date();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return simpleDateFormat.format(date);
}
public static void main(String[] args) {
try {
new KafkaProducerDemo().produce();
System.exit(0);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}