SpringSpring Kafka Basics
How do you produce messages with KafkaTemplate?
Reference answer
Inject KafkaTemplate<K,V> into your service. Methods: kafkaTemplate.send(topic, value) — auto-partition; kafkaTemplate.send(topic, key, value) — key-based partitioning; kafkaTemplate.send(new ProducerRecord<>(topic, partition, key, value, headers)) — full control. send() returns ListenableFuture<SendResult<K,V>>. Use .addCallback() for async result handling, or .get() to block synchronously. For JSON: configure spring.kafka.producer.value-serializer=JsonSerializer. Spring Boot autoconfigures KafkaTemplate via KafkaAutoConfiguration when spring-kafka is on classpath.
Expected key concepts: KafkaTemplate, send, ProducerRecord, ListenableFuture, SendResult, addCallback, JsonSerializer, autoconfigures, partition, key