SpringBoot 与 RabbitMQ 实现应用间通信
RabbitMQ 可作为消息队列用于应用程序之间的通信。通过在生产者和消费者代码分别部署于不同应用中,即可完成跨应用通信。
需求描述
用户下单成功后,通知物流系统进行发货。
- 订单系统:生产者
- 物流系统:消费者
创建项目
1. 创建空项目
新建一个 Maven/Gradle 多模块项目。
2. 创建 Module(order-service)
添加 Spring Boot 和 RabbitMQ 依赖。
3. 创建 Module(logistics-service)
添加 Spring Boot 和 RabbitMQ 依赖。
消息类型为字符串
编写订单代码
配置文件 (application.yml)
spring:
application:
name: order-service
rabbitmq:
addresses: amqp://study:[email protected]:5672/order
声明队列
import org.springframework.amqp.core.Queue;
import org.springframework.amqp.core.QueueBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class RabbitMQConfig {
@Bean("orderQueue")
public Queue orderQueue() {
return QueueBuilder.durable("order.create").build();
}
}
生产订单
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
java.util.UUID;
{
RabbitTemplate rabbitTemplate;
String {
UUID.randomUUID().toString();
rabbitTemplate.convertAndSend(, , + orderId);
;
}
}


