diff --git a/order-service/src/main/java/net/adiletkdev/orderservice/config/RabbitMQConfig.java b/order-service/src/main/java/net/adiletkdev/orderservice/config/RabbitMQConfig.java index 1d18e77..d348dde 100644 --- a/order-service/src/main/java/net/adiletkdev/orderservice/config/RabbitMQConfig.java +++ b/order-service/src/main/java/net/adiletkdev/orderservice/config/RabbitMQConfig.java @@ -49,6 +49,7 @@ public MessageConverter converter() { } // configure RabbitTemplate + @Bean public AmqpTemplate amqpTemplate(ConnectionFactory connectionFactory) { RabbitTemplate rabbitTemplate = new RabbitTemplate(connectionFactory); rabbitTemplate.setMessageConverter(converter()); diff --git a/stock-service/pom.xml b/stock-service/pom.xml index de0f420..3ebc319 100644 --- a/stock-service/pom.xml +++ b/stock-service/pom.xml @@ -41,6 +41,12 @@ spring-rabbit-test test + + + net.adiletkdev + order-service + 0.0.1-SNAPSHOT + diff --git a/stock-service/src/main/java/net/adiletkdev/stockservice/config/RabbitMQConfig.java b/stock-service/src/main/java/net/adiletkdev/stockservice/config/RabbitMQConfig.java new file mode 100644 index 0000000..ec341a6 --- /dev/null +++ b/stock-service/src/main/java/net/adiletkdev/stockservice/config/RabbitMQConfig.java @@ -0,0 +1,27 @@ +package net.adiletkdev.stockservice.config; + +import org.springframework.amqp.core.*; +import org.springframework.amqp.rabbit.connection.ConnectionFactory; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter; +import org.springframework.amqp.support.converter.MessageConverter; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +public class RabbitMQConfig { + + // message converter + @Bean + public MessageConverter converter() { + return new Jackson2JsonMessageConverter(); + } + + // configure RabbitTemplate + public AmqpTemplate amqpTemplate(ConnectionFactory connectionFactory) { + RabbitTemplate rabbitTemplate = new RabbitTemplate(connectionFactory); + rabbitTemplate.setMessageConverter(converter()); + + return rabbitTemplate; + } +} diff --git a/stock-service/src/main/java/net/adiletkdev/stockservice/consumer/OrderConsumer.java b/stock-service/src/main/java/net/adiletkdev/stockservice/consumer/OrderConsumer.java new file mode 100644 index 0000000..47a6219 --- /dev/null +++ b/stock-service/src/main/java/net/adiletkdev/stockservice/consumer/OrderConsumer.java @@ -0,0 +1,20 @@ +package net.adiletkdev.stockservice.consumer; + +import net.adiletkdev.orderservice.dto.OrderEvent; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.stereotype.Service; + +@Service +public class OrderConsumer { + + private Logger LOGGER = LoggerFactory.getLogger(OrderConsumer.class); + + @RabbitListener(queues = {"${rabbitmq.queue.order.name}"}) + public void consume(OrderEvent event) { + LOGGER.info(String.format("Order event received -> %s", event.toString())); + + // save order event data in database + } +} diff --git a/stock-service/src/main/resources/application.properties b/stock-service/src/main/resources/application.properties index 4d360de..54f1080 100644 --- a/stock-service/src/main/resources/application.properties +++ b/stock-service/src/main/resources/application.properties @@ -1 +1,3 @@ server.port=8081 + +rabbitmq.queue.order.name=order_queue \ No newline at end of file