❮ Previous Lecture
Next Lecture ❯
❮ Previous Lecture
Next Lecture ❯
Welcome to Spring Boot Kafka Event-Driven Microservices Series. In this lecture, we will Create Kafka Producer in OrderService Microservice.
Lecture - #10 - Create Kafka Producer in OrderService Microservice
Source Code used in Lecture for Your Reference
Create Kafka Producer in OrderService Microservice
In an order-service project, create a package named Kafka. Within a Kafka package, create a class named OrderProducer and add the following content to it:
package net.javaguides.orderservice.kafka;
import net.javaguides.basedomains.dto.OrderEvent;
import org.apache.kafka.clients.admin.NewTopic;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.kafka.core.KafkaTemplate;
import org.springframework.kafka.support.KafkaHeaders;
import org.springframework.messaging.Message;
import org.springframework.messaging.support.MessageBuilder;
import org.springframework.stereotype.Service;
@Service
public class OrderProducer {
private static final Logger LOGGER = LoggerFactory.getLogger(OrderProducer.class);
private NewTopic topic;
private KafkaTemplate<String, OrderEvent> kafkaTemplate;
public OrderProducer(NewTopic topic, KafkaTemplate<String, OrderEvent> kafkaTemplate) {
this.topic = topic;
this.kafkaTemplate = kafkaTemplate;
}
public void sendMessage(OrderEvent event){
LOGGER.info(String.format("Order event => %s", event.toString()));
// create Message
Message<OrderEvent> message = MessageBuilder
.withPayload(event)
.setHeader(KafkaHeaders.TOPIC, topic.name())
.build();
kafkaTemplate.send(message);
}
}
Note that we are sending an OrderEvent object to a Kafka Topic.
We created a KafkaTemplate<String, OrderEvent> since we are sending Java Objects to the Kafka topic that’ll automatically be transformed into a JSON byte[].
In this example, we created a Message using the MessageBuilder. It’s important to add the topic to which we are going to send the message too.
Comments
Post a Comment
Leave Comment