Сначала добавляешь необходимую зависимость в
pom, затем можешь настроить её в application.xml, указав, как подключаться к кластеру Apache Kafka, а также как определены consumer’ы и producer’ы.Here the required dependency:
<dependency>
<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka</artifactId>
</dependency>
Configuration example:
spring:
kafka:
bootstrap-servers: localhost:9092
producer:
key-serializer: org.apache.kafka.common.serialization.StringSerializer
value-serializer: org.springframework.kafka.support.serializer.JsonSerializer
acks: all
retries: 3
consumer:
group-id: my-service-group
auto-offset-reset: earliest
key-deserializer: org.apache.kafka.common.serialization.StringDeserializer
value-deserializer: org.springframework.kafka.support.serializer.JsonDeserializer
После этого можно реализовать consumer’ы и producer’ы как Java-объекты:
Producer:
@Service
public class MessageProducer {
private final KafkaTemplate<String, String> kafkaTemplate;
public MessageProducer(KafkaTemplate<String, String> kafkaTemplate) {
this.kafkaTemplate = kafkaTemplate;
}
public void send(String message) {
kafkaTemplate.send("demo-topic", message);
}
}
Consumer:
@Service
public class MessageConsumer {
@KafkaListener(topics = "demo-topic", groupId = "demo-group")
public void listen(String message) {
System.out.println("Received: " + message);
}
}
👉 Java Portal
