Kafka Consumer and Producer in Spring Boot
1. Dependency Required
You need to include the following dependency in your pom.xml or build.gradle:
<dependency> <groupId>org.springframework.kafka</groupId> <artifactId>spring-kafka</artifactId> <version>2.7.0</version> </dependency>
Also See: How to Setup Kafka Locally on Windows
2. Kafka Configuration in application.properties
You need to configure Kafka for both Producer and Consumer in your application.properties:
# Kafka Producer configuration spring.kafka.bootstrap-servers=localhost:9092 # Kafka Consumer configuration spring.kafka.consumer.group-id=my-group
3. Configuring Kafka Producer with @KafkaTemplate
To configure a Kafka producer, you can use the @KafkaTemplate annotation. You can serialize the message to JSON format using the JsonSerializer:
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.kafka.core.KafkaTemplate; import org.springframework.kafka.support.serializer.JsonSerializer; import org.springframework.stereotype.Component; @Component public class MyKafkaProducer { @Autowired private KafkaTemplate<String, Object> kafkaTemplate; public void sendMessage(String topic, Object message) { kafkaTemplate.send(topic, message); } }
4. Configuring Kafka Consumer with @KafkaListener
To configure a Kafka consumer, you can use the @KafkaListener annotation. You can deserialize the message from JSON format using the JsonDeserializer:
import org.springframework.kafka.annotation.KafkaListener; import org.springframework.stereotype.Component; @Component public class MyKafkaConsumer { @KafkaListener(topics = "my-topic", groupId = "my-group") public void listen(String message) { System.out.println("Received Message: " + message); } }
Conclusion
Spring Boot makes it easy to implement Kafka consumer and producer using the Spring Kafka library. By using annotations like @KafkaTemplate and @KafkaListener, developers can quickly set up Kafka communication in their applications.
Top comments (0)