rabbitmq在项目中的使用
rabbitmq在项目中的使用1启动rabbitmq在虚拟机中启动rabbitmq2添加依赖在队列生产者项目中添加依赖<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId></de
·
rabbitmq在项目中的使用
1启动rabbitmq
在虚拟机中启动rabbitmq
2添加依赖
在队列生产者项目中添加依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
3配置连接
配置rabbitmq的连接
rabbitmq:
host: 192.168.126.17
port: 5672
username: admin
password: admin
配置内容是在spring的配置下
4创建队列
在主程序中
//新建一个用来封装队列参数的对象,放入spring容器
//rabbitmq自动配置类会发现这个对象,使用其中的参数
//来创建队列
@Bean
public Queue orderQueue(){
return new Queue("orderQueue",true);
}
5创建生产订单
在OrderServiceImpl中注入RabbitAutoConfigtion配置类AmqpTemplate,用于将产生的订单发送到rabbitMQ消息队列
/**
* 在RabbitAutoConfigtion自动配置类
* 已经创建了AmqpTemplate实例
* 在这里直接注入
*/
@Autowired
private AmqpTemplate t;
不消费订单业务,将订单业务发给rabbit消息队列
public String saveOrder(PdOrder pdOrder) throws Exception {
String orderId = generateId();
pdOrder.setOrderId(orderId);
//不在直接执行数据操作,而是改成向rabbitmq发送订单对象
t.convertAndSend("orderQueue",pdOrder);
}
在系统上下发一条订单
可以看到rabbitMQ上存了一条订单消息
6创建消费者
在消费者项目中同样添加依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
添加配置信息
rabbitmq:
host: 192.168.126.17
port: 5672
username: admin
password: admin
创建消费者类
/**
* 基础配置 1.依赖,2.连接,3.队列
*
*
*消费者从orderQueue接收订单,
* 调用业务代码,完成订单存储
*/
@RabbitListener(queues = "orderQueue")
@Component
public class OrderComsumer {
@Autowired
private OrderService orderService;
@RabbitHandler //配合RabbitListener,指定处理消息的方法
public void receive(PdOrder order) throws Exception {
orderService.saveOrder(order);
System.out.println("订单已存储,id="+order.getOrderId());
}
}
在此项目中完成对订单的消费
消费者项目在启动项目就可以把存在rabbitMQ中的订单给消费掉
A7lo-1625037081987)]
消费者项目在启动项目就可以把存在rabbitMQ中的订单给消费掉
[外链图片转存中…(img-ZskDgcTx-1625037081987)]
[外链图片转存中…(img-7oyLWuVw-1625037081988)]
更多推荐
已为社区贡献3条内容
所有评论(0)