DEV Community

Code Green
Code Green

Posted on • Edited on

Using Kafka in Spring Boot Application

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>
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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);
    }
}
Enter fullscreen mode Exit fullscreen mode

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);
    }
}
Enter fullscreen mode Exit fullscreen mode

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.

Image of Timescale

🚀 pgai Vectorizer: SQLAlchemy and LiteLLM Make Vector Search Simple

We built pgai Vectorizer to simplify embedding management for AI applications—without needing a separate database or complex infrastructure. Since launch, developers have created over 3,000 vectorizers on Timescale Cloud, with many more self-hosted.

Read full post →

Top comments (0)

Image of Docusign

🛠️ Bring your solution into Docusign. Reach over 1.6M customers.

Docusign is now extensible. Overcome challenges with disconnected products and inaccessible data by bringing your solutions into Docusign and publishing to 1.6M customers in the App Center.

Learn more