Skip to content

Spring Boot Integration Kafka

Overview

In this tutorial,I'll show how to use spring kafka to send message

Maven Dependencies

we should confirm have spring kafka

xml
<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <!-- Spring Kafka Starter -->
        <dependency>
            <groupId>org.springframework.kafka</groupId>
            <artifactId>spring-kafka</artifactId>
        </dependency>
</dependencies>

config in application.yml

yml
server:
  port: 8081

spring:
  kafka:
    bootstrap-servers: 10.32.1.200:9092
    producer:
      key-serializer: org.apache.kafka.common.serialization.StringSerializer
      value-serializer: org.apache.kafka.common.serialization.StringSerializer
    consumer:
      key-deserializer: org.apache.kafka.common.serialization.StringDeserializer
      value-deserializer: org.apache.kafka.common.serialization.StringDeserializer

Produce Message code

I'll use controller to send message to kafka

java
@RestController
@RequestMapping("kafka")
public class KafkaTestController {

    private final KafkaTemplate kafkaTemplate;

    public KafkaTestController(KafkaTemplate kafkaTemplate) {
        this.kafkaTemplate = kafkaTemplate;
    }

    @GetMapping("send")
    public void send() {
        kafkaTemplate.send("test","test product");
        return;
    }
}

Consumer Message Listener

java
@Component
@Slf4j
public class KafkaListenerService {

    @KafkaListener(topics = {"test"},groupId = "test-consumer",concurrency = "2")
    public void consumer(String message) {
      log.info("listener kafka message {}",message);
    }
}

we can see the log from dashboard

text
2024-07-04 18:25:58.722  INFO 30116 --- [ntainer#0-1-C-1] prg.example.config.KafkaListenerService  : listener kafka message test product

Conclusion

In this article. we went through the basic of Spring Kafka.

Released under the MIT License.