From 5e390059135d85702b46bba55cd75b99384327fa Mon Sep 17 00:00:00 2001 From: Adilet K Date: Mon, 10 Jul 2023 17:41:50 +0600 Subject: [PATCH 1/2] configure: StockService microservice RabbitMQ --- stock-service/pom.xml | 6 ++++ .../stockservice/config/RabbitMQConfig.java | 28 +++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 stock-service/src/main/java/net/adiletkdev/stockservice/config/RabbitMQConfig.java 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..292ffe8 --- /dev/null +++ b/stock-service/src/main/java/net/adiletkdev/stockservice/config/RabbitMQConfig.java @@ -0,0 +1,28 @@ +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.beans.factory.annotation.Value; +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; + } +} From 7766987457af6a574d9c36b591c16593c58de22b Mon Sep 17 00:00:00 2001 From: Adilet K Date: Mon, 10 Jul 2023 18:32:49 +0600 Subject: [PATCH 2/2] add: StockService microservice - RabbitMQ consumer --- .../orderservice/config/RabbitMQConfig.java | 1 + .../stockservice/config/RabbitMQConfig.java | 1 - .../stockservice/consumer/OrderConsumer.java | 20 +++++++++++++++++++ .../src/main/resources/application.properties | 2 ++ 4 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 stock-service/src/main/java/net/adiletkdev/stockservice/consumer/OrderConsumer.java 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/src/main/java/net/adiletkdev/stockservice/config/RabbitMQConfig.java b/stock-service/src/main/java/net/adiletkdev/stockservice/config/RabbitMQConfig.java index 292ffe8..ec341a6 100644 --- a/stock-service/src/main/java/net/adiletkdev/stockservice/config/RabbitMQConfig.java +++ b/stock-service/src/main/java/net/adiletkdev/stockservice/config/RabbitMQConfig.java @@ -5,7 +5,6 @@ import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter; import org.springframework.amqp.support.converter.MessageConverter; -import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; 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