package com.xuexiangban.rabbitmq.springbootorderrabbitmqproducer.service;
import org.springframework.amqp.AmqpException;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.core.MessagePostProcessor;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.UUID;
/**
* @description:
* @author: xuke
* @time: 2021/3/6 0:24
*/
@Service
public class OrderService {
@Autowired
private RabbitTemplate rabbitTemplate;
/**
* @return void
* @Author xuke
* @Description 模拟用户下单
* @Date 0:25 2021/3/6
* @Param [userid, productid, num]
**/
public void makeOrder(String userid, String productid, int num) {
// 1: 根据商品id查询库存是否充足
// 2: 保存订单
String orderId = UUID.randomUUID().toString();
System.out.println("订单生产成功:" + orderId);
// 3: 通过MQ来完成消息的分发
// 参数1: 交换机 参数2:路由key/queue队列名称 参数3:消息内容
String exchangeName = "fanout_order_exchange";
String routingKey = "";
rabbitTemplate.convertAndSend(exchangeName, routingKey, orderId);
}
/**
* @return void
* @Author xuke
* @Description 模拟用户下单
* @Date 0:25 2021/3/6
* @Param [userid, productid, num]
**/
public void makeOrderDirect(String userid, String productid, int num) {
// 1: 根据商品id查询库存是否充足
// 2: 保存订单
String orderId = UUID.randomUUID().toString();
System.out.println("订单生产成功:" + orderId);
// 3: 通过MQ来完成消息的分发
// 参数1: 交换机 参数2:路由key/queue队列名称 参数3:消息内容
String exchangeName = "direct_order_exchange";
rabbitTemplate.convertAndSend(exchangeName, "email", orderId);
rabbitTemplate.convertAndSend(exchangeName, "duanxin", orderId);
}
/**
* @return void
* @Author xuke
* @Description 模拟用户下单
* @Date 0:25 2021/3/6
* @Param [userid, productid, num]
**/
public void makeOrdertopic(String userid, String productid, int num) {
// 1: 根据商品id查询库存是否充足
// 2: 保存订单
String orderId = UUID.randomUUID().toString();
System.out.println("订单生产成功:" + orderId);
// 3: 通过MQ来完成消息的分发
// 参数1: 交换机 参数2:路由key/queue队列名称 参数3:消息内容
String exchangeName = "topic_order_exchange";
String routingkey = "com.email.duanxin.test";
// #.duanxin.# duanxin
// *.email.# email
// com.# sms
rabbitTemplate.convertAndSend(exchangeName, routingkey, orderId);
}
/**
* @return void
* @Author xuke
* @Description 模拟用户下单
* @Date 0:25 2021/3/6
* @Param [userid, productid, num]
**/
public void makeOrderTtl(String userid, String productid, int num) {
// 1: 根据商品id查询库存是否充足
// 2: 保存订单
String orderId = UUID.randomUUID().toString();
System.out.println("订单生产成功:" + orderId);
// 3: 通过MQ来完成消息的分发
// 参数1: 交换机 参数2:路由key/queue队列名称 参数3:消息内容
String exchangeName = "ttl_direct_exchange";
String routingkey = "ttl";
// #.duanxin.# duanxin
// *.email.# email
// com.# sms
rabbitTemplate.convertAndSend(exchangeName, routingkey, orderId);
}
/**
* @return void
* @Author xuke
* @Description 模拟用户下单
* @Date 0:25 2021/3/6
* @Param [userid, productid, num]
**/
public void makeOrderTtlMessage(String userid, String productid, int num) {
// 1: 根据商品id查询库存是否充足
// 2: 保存订单
String orderId = UUID.randomUUID().toString();
System.out.println("订单生产成功:" + orderId);
// 3: 通过MQ来完成消息的分发
// 参数1: 交换机 参数2:路由key/queue队列名称 参数3:消息内容
String exchangeName = "ttl_direct_exchange";
String routingkey = "ttlmessage";
// 给消息设置过期时间
MessagePostProcessor messagePostProcessor = new MessagePostProcessor() {
@Override
public Message postProcessMessage(Message message) throws AmqpException {
// 这里就是字符串
message.getMessageProperties().setExpiration("5000");
message.getMessageProperties().setContentEncoding("UTF-8");
return message;
}
};
rabbitTemplate.convertAndSend(exchangeName, routingkey, orderId,messagePostProcessor);
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
rabbitMQ学习笔记rabbitMQ学习笔记rabbitMQ学习笔记rabbitMQ学习笔记rabbitMQ学习笔记rabbitMQ学习笔记rabbitMQ学习笔记rabbitMQ学习笔记rabbitMQ学习笔记rabbitMQ学习笔记rabbitMQ学习笔记rabbitMQ学习笔记rabbitMQ学习笔记rabbitMQ学习笔记rabbitMQ学习笔记rabbitMQ学习笔记rabbitMQ学习笔记rabbitMQ学习笔记rabbitMQ学习笔记rabbitMQ学习笔记rabbitMQ学习笔记rabbitMQ学习笔记rabbitMQ学习笔记rabbitMQ学习笔记rabbitMQ学习笔记rabbitMQ学习笔记rabbitMQ学习笔记rabbitMQ学习笔记rabbitMQ学习笔记rabbitMQ学习笔记rabbitMQ学习笔记rabbitMQ学习笔记rabbitMQ学习笔记rabbitMQ学习笔记rabbitMQ学习笔记rabbitMQ学习笔记rabbitMQ学习笔记rabbitMQ学习笔记rabbitMQ学习笔记rabbitMQ学习笔记rabbitMQ学习笔记
资源推荐
资源详情
资源评论










收起资源包目录





































































































共 711 条
- 1
- 2
- 3
- 4
- 5
- 6
- 8
资源评论



带上耳机世界与我无关
- 粉丝: 1301
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 奥克斯空调网络公关建议书.pptx
- 2022电子商务策划书_.docx
- 计算机专业英语---Unit-8-Computer-Network-Knowledge省公开课一等奖.pptx
- 项目八广告牌循环彩灯PLC控制系统教学教材.ppt
- 第十三章 信息化动态管理.doc
- 互联网9大思维20条法则.doc
- 2023年微机系统与维护课程期末复习中央广播电视大学计算机.doc
- 《电子商务运营》课程总结.doc
- 数据库物理设计.pptx
- 南开大学2021年9月《DirectX程序设计》作业考核试题及答案参考16.docx
- 电子商务营销如何更好地服务于中小企业.doc
- C语言程序设计填空题及答案复习用.doc
- (完整word版)采用邻接表存储结构-编写一个求无向图的连通分量个数的算法.doc
- 消费品流通之互联网转型下载版讲课资料.pptx
- 1开学第一课计算机发展教学提纲.ppt
- NISTSP工业控制系统安全指南.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制
