一、RabbitMQ补充(以生产者和消费者举例)

1. 声明回调函数

//回调函数RabbitTemplate.ConfirmCallback callback = (CorrelationData correlationData, boolean bl, String s) -> {if (bl) {}};

2. 在控制层里的方法中实现具体的绑定

if (null != obj) {//开启消息确认rabbitTemplate.setMandatory(true);//绑定回调函数rabbitTemplate.setConfirmCallback(callback);//创建对象OrderDto orderDto = new OrderDto();//拷贝到对象BeanUtils.copyProperties(order, orderDto);//创建关联数据对象CorrelationData correlationData = new CorrelationData(orderDto.getOrderNum());//将数据放入到MQrabbitTemplate.convertAndSend("meituanExchange", "order", orderDto, correlationData);return true;}

完成以上两步,就已经实现了将对象信息放到MQ中了。

接下来就是怎么将MQ中的数据取出来,并且实现功能了。

二、通过fegin调用生产者接口,且实现取出数据

1.1 首先在生产者这边的控制层定义实现的方法

    @PutMapping("updateOrder/{orderNum}/{tag}")public boolean updateOrder(@PathVariable("orderNum") String orderNum,@PathVariable("tag") int tag) {OrderEntity orderEntity = orderDao.findDistinctByOrderNum(orderNum);orderEntity.setTag(tag);orderEntity = orderDao.save(orderEntity);if (null != orderEntity) {return true;}return false;}

这里使用的是RestFull风格。

1.2 在公共的模块包中实现该接口方法

@FeignClient(name = "order", url = "http://127.0.0.1:8006/order")
public interface IOrderService {@PutMapping("updateOrder/{orderNum}/{tag}")public boolean updateOrder(@PathVariable("orderNum") String orderNum,@PathVariable("tag") int tag);
}

url为生产者的url地址加上端口号

1.3 在消费者服务层中导入

    @Resourceprivate IOrderService orderService;

2 消费者从MQ中取数据且实现业务方法

    @RabbitListener(queues = "meituanOrderQueue")public void orderQueue(Channel channel, @Header(AmqpHeaders.DELIVERY_TAG) long tag, OrderDto orderDto) throws IOException {if (null != orderDto) {}}

queues = “meituanOrderQueue”:是生产者中MQ的队列名

以上的内容就是通过RabbitMQ和fegin实现生产者到消费者的简单业务应用。将对象信息存入到MQ中,然后消费者从MQ中取出并且应用。

RabbitMQ和fegin补充相关推荐

  1. 第四节 RabbitMQ在C#端的应用-客户端连接

    第四节 RabbitMQ在C#端的应用-客户端连接 原文:第四节 RabbitMQ在C#端的应用-客户端连接 版权声明:未经本人同意,不得转载该文章,谢谢 https://blog.csdn.net/ ...

  2. 使用RabbitMQ做数据接收和处理时,自动关闭

    场景:N个客户端向MQ里发送数据:服务器上有另一个控制台程序(假设叫ServerClient)来处理这里数据(往数据库保存).方向为Client * n→MQSERVER→ServerClient 问 ...

  3. RabbitMQ 可靠消息传输实战--云平台技术栈12

    导读:之前发布了云平台技术栈(ps:点击可查看),本文主要说一下其中的RabbitMQ! 作者:极客慧 https://my.oschina.net/jikeh/blog/2207127 可能是缓存架 ...

  4. RabbitMQ消息队列生产者和消费者

    概述 生产者生产数据至 RabbitMQ 队列,消费者消费 RabbitMQ 队列里的数据. 详细 代码下载:http://www.demodashi.com/demo/10723.html 一.准备 ...

  5. 消息中间件选型分析 —— 从 Kafka 与 RabbitMQ 的对比来看全局

    一.前言 二.各类消息队列简述 三.选型要点概述 四.消息中间件选型误区探讨 一.前言 消息队列中间件(简称消息中间件)是指利用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布 ...

  6. springboot 集成rabbitmq 实例

    springboot 集成rabbitmq 实例 个人在学习rabbitmq时发现网上很少有系统性介绍springboot和rabbitmq如何集成的,其他人总结的都片段化,所以结合个人调研过程,整理 ...

  7. 七十七、SpringBoot整合Rabbitmq

    @Author:Runsen 来源:尚硅谷 下面建议读者学习尚硅谷的B站的SpringBoot视频,我是学雷丰阳视频入门的. 具体链接如下:B站尚硅谷SpringBoot教程 文章目录 MQ Rabb ...

  8. ubuntu使用rabbitmq的一些基本命令

    sudo apt-get install rabbitmq-server #安装成功自动启动 systemctl status rabbitmq-server #Active: active (run ...

  9. 消息中间件选型分析——从Kafka与RabbitMQ的对比来看全局

    本文收录于InfoQ,未经允许不得转载. 欢迎跳转到本文原文:https://honeypps.com/mq/kafka-vs-rabbitmq/ 一.前言 消息队列中间件(简称消息中间件)是指利用高 ...

最新文章

  1. cmw500综合测试仪使用_宁波摆闸静电测试仪价格-老友网
  2. 一个分号将代码效率提升100倍
  3. phpmyadmin同时连接多个服务器的数据库
  4. php文件转成css,利用PHP压缩CSS、JS 输出
  5. button-xml 中android:clickable=false 属性
  6. 汇编语言:编写code段中代码,将a段和b段中的数据依次相加,将结果放到c段
  7. centOS 7下安装与配置heartbeat高可用集群
  8. 安卓真机测试遇到的检测不到安卓设备的问题
  9. Jquery实现 TextArea 文本框根据输入内容自动适应高度
  10. eclipse翻译插件,支持最新版eclipse 2022-09
  11. WMB专题之ESQL
  12. 冬季无锡旅游攻略,无锡太湖、鼋头渚之游小记!!!!
  13. java递归查询分类及分类下所有子分类
  14. 如何判断一个对象是否属于某个类
  15. Web 前端必会的 PhotoShop 技能
  16. golang 浮点数操作
  17. 大数据学情分析_大数据背景下的大学生学情分析研究
  18. 【刷题日记】树的那些事儿(一)——基本操作
  19. vue-cli调用高德地图api
  20. MySQL增量备份实战

热门文章

  1. Tennessee Eastman(TE过程)简介
  2. Latex--TikZ和PGF--高级文本绘图,思维绘图,想到--得到!
  3. 设计模式(一):接口隔离原则
  4. 门禁控制器的选购指南
  5. 搜狗微信临时链接的转换
  6. php 获取搜狗微信 sn,记搜狗微信号搜索反爬虫
  7. 打破FTTR布线标准瓶颈,让千兆光纤网络走进千家万户
  8. python散点图图例显示标记点类型_python – matplotlib散点图中的标记点
  9. 【转载】xp用户自动登录
  10. 微博论道:互联网中,帮助过你的老师都有谁呢?