maven
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
<version>2.3.0</version>
</dependency>
一个正常的生产逻辑需要具备以下几个步骤:
- 配置生产者客户端参数及创建相应的生产者实例
- 构建待发送的消息
- 发送消息
- 关闭生产者实例
Properties props = new Properties();
props.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG,"192.168.94.151:9092");
props.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName());
props.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName());
//1. 创建一个生产者对象
KafkaProducer<String, String> producer = new KafkaProducer<>(props);
//2. 构造所需要发送的消息
ProducerRecord<String, String> producerRecord = new ProducerRecord<>("test001", UUID.randomUUID().toString());
//3. 调用send方法
Future<RecordMetadata> future = producer.send(producerRecord, (metadata, exception) -> {
if (Objects.isNull(exception)) {
System.out.println(metadata.offset());
System.out.println("success");
} else {
System.out.println("error");
}
});
RecordMetadata recordMetadata = future.get();
System.out.println(recordMetadata.offset());
//4. 关闭
producer.close();