Using Kafka in Spring Boot Application
Code Green
Posted on June 11, 2024
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.
Posted on June 11, 2024
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.