package com.god.kafka.producer; 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.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.Properties; import java.util.UUID; import java.util.concurrent.ExecutionException; import java.util.concurrent.Future; import static com.god.kafka.contents.KafkaContent.KAFKA_CON; import static com.god.kafka.contents.KafkaContent.TOPIC; /** * @author DongZl * @description: 生产者测试 * @Date 2023/8/25 18:50 */ public class ProducerTest { private static Producer producer; public static void KfkProducer() { Properties props = new Properties(); props.put("bootstrap.servers", KAFKA_CON); // props.put("linger.ms", 1); props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer"); props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer"); producer = new KafkaProducer<>(props); } private static void close() { producer.close(); } private static RecordMetadata send(String topic, String key, String value) { Future result = producer.send(new ProducerRecord<>(topic, key, value)); RecordMetadata meta = null; try { meta = result.get(); } catch (InterruptedException | ExecutionException e) { e.printStackTrace(); } return meta; } public static void main (String[] args) { KfkProducer(); new Thread(() -> { int i = 0; do { try { Thread.sleep(1000); } catch (InterruptedException e) { throw new RuntimeException(e); } String format = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); send(TOPIC, UUID.randomUUID().toString(), format); }while (i++ < 1000); close(); }).start(); } }