# rabbitMqWork **Repository Path**: zhayan/rabbit-mq-work ## Basic Information - **Project Name**: rabbitMqWork - **Description**: rabbitMQ学习作业 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-02-21 - **Last Updated**: 2022-05-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # rabbitMQ学习作业 **整体功能:** 1. ttl+死信队列 2. 延迟付款 3. 手动补偿 **模拟结果:** [模拟视频](doc/rabbitMq模拟.rar) ## 消息队列配置 [RabbitConfig.java](src/main/java/wsz/rabbitmq/config/RabbitConfig.java) ### 待支付订单队列 - 队列:queue.pay,队列级别的消息存活时间``x-message-ttl=10000`` - 交换器:ex.pay - routingKey:pay ### 待支付订单死信队列 - 队列:queue.pay.dlx - 交换器:ex.pay.dlx - routingKey:pay.dlx ## 请求模拟 [OrderController.java](src/main/java/wsz/rabbitmq/controller/OrderController.java) ### 新增订单 1. 订单Order新增 2. 消息队列发送 ``` GET http://localhost:8080/order/add # 返回 uuid ``` ![](doc/img/orderCreate.png) ### 获取订单支付状态 ``` GET http://localhost:8080/order/payStatus/{uuid} # 返回订单状态 0待支付 1已付款 ``` ![](doc/img/payStatus.png) ### 获取所有订单 ``` GET http://localhost:8080/order/all # 返回所有订单信息 ``` ![](doc/img/allOrder.png) ### 模拟队列消费 1. 队列中取出待支付数据 2. 更新Order的支付状态 ``` GET http://localhost:8080/order/payQueue # 手动模拟队列的消费 ``` ![](doc/img/payQueue.png) ### 模拟死信队列消费 1. 队列中取出待支付数据 2. 更新Order的支付状态 ``` GET http://localhost:8080/order/dlxQueue # 手动模拟死信队列的消费 ``` ![](doc/img/dlxOrder.png) ![](doc/img/payOk.png)