Kafka with Spring Boot
Dependencies
spring-kafka: For Spring Kafka supportkafka-clients: For Kafka client support
Configuration
Configure Kafka broker URL and port in
application.properties:
spring.kafka.bootstrap-servers=<kafka-broker-url>:<port>Producer Configuration
Use
KafkaTemplateto send messages to Kafka topicsCreate a
KafkaTemplatebean:
@Bean
public KafkaTemplate<String, String> kafkaTemplate() {
return new KafkaTemplate<>(producerFactory());
}Define a
ProducerFactorybean:
@Bean
public ProducerFactory<String, String> producerFactory() {
Map<String, Object> configProps = new HashMap<>();
configProps.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, "localhost:9092");
configProps.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class);
configProps.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class);
return new DefaultKafkaProducerFactory<>(configProps);
}Use
KafkaTemplateto send messages to Kafka topics:
Consumer Configuration
Create a
KafkaListenerContainerFactorybean:
Define a
ConsumerFactorybean:
Use
@KafkaListenerannotation to consume messages from Kafka topics:
Last updated
Was this helpful?