RabbitMQ和fegin补充
一、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补充相关推荐
- 第四节 RabbitMQ在C#端的应用-客户端连接
第四节 RabbitMQ在C#端的应用-客户端连接 原文:第四节 RabbitMQ在C#端的应用-客户端连接 版权声明:未经本人同意,不得转载该文章,谢谢 https://blog.csdn.net/ ...
- 使用RabbitMQ做数据接收和处理时,自动关闭
场景:N个客户端向MQ里发送数据:服务器上有另一个控制台程序(假设叫ServerClient)来处理这里数据(往数据库保存).方向为Client * n→MQSERVER→ServerClient 问 ...
- RabbitMQ 可靠消息传输实战--云平台技术栈12
导读:之前发布了云平台技术栈(ps:点击可查看),本文主要说一下其中的RabbitMQ! 作者:极客慧 https://my.oschina.net/jikeh/blog/2207127 可能是缓存架 ...
- RabbitMQ消息队列生产者和消费者
概述 生产者生产数据至 RabbitMQ 队列,消费者消费 RabbitMQ 队列里的数据. 详细 代码下载:http://www.demodashi.com/demo/10723.html 一.准备 ...
- 消息中间件选型分析 —— 从 Kafka 与 RabbitMQ 的对比来看全局
一.前言 二.各类消息队列简述 三.选型要点概述 四.消息中间件选型误区探讨 一.前言 消息队列中间件(简称消息中间件)是指利用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布 ...
- springboot 集成rabbitmq 实例
springboot 集成rabbitmq 实例 个人在学习rabbitmq时发现网上很少有系统性介绍springboot和rabbitmq如何集成的,其他人总结的都片段化,所以结合个人调研过程,整理 ...
- 七十七、SpringBoot整合Rabbitmq
@Author:Runsen 来源:尚硅谷 下面建议读者学习尚硅谷的B站的SpringBoot视频,我是学雷丰阳视频入门的. 具体链接如下:B站尚硅谷SpringBoot教程 文章目录 MQ Rabb ...
- ubuntu使用rabbitmq的一些基本命令
sudo apt-get install rabbitmq-server #安装成功自动启动 systemctl status rabbitmq-server #Active: active (run ...
- 消息中间件选型分析——从Kafka与RabbitMQ的对比来看全局
本文收录于InfoQ,未经允许不得转载. 欢迎跳转到本文原文:https://honeypps.com/mq/kafka-vs-rabbitmq/ 一.前言 消息队列中间件(简称消息中间件)是指利用高 ...
最新文章
- cmw500综合测试仪使用_宁波摆闸静电测试仪价格-老友网
- 一个分号将代码效率提升100倍
- phpmyadmin同时连接多个服务器的数据库
- php文件转成css,利用PHP压缩CSS、JS 输出
- button-xml 中android:clickable=false 属性
- 汇编语言:编写code段中代码,将a段和b段中的数据依次相加,将结果放到c段
- centOS 7下安装与配置heartbeat高可用集群
- 安卓真机测试遇到的检测不到安卓设备的问题
- Jquery实现 TextArea 文本框根据输入内容自动适应高度
- eclipse翻译插件,支持最新版eclipse 2022-09
- WMB专题之ESQL
- 冬季无锡旅游攻略,无锡太湖、鼋头渚之游小记!!!!
- java递归查询分类及分类下所有子分类
- 如何判断一个对象是否属于某个类
- Web 前端必会的 PhotoShop 技能
- golang 浮点数操作
- 大数据学情分析_大数据背景下的大学生学情分析研究
- 【刷题日记】树的那些事儿(一)——基本操作
- vue-cli调用高德地图api
- MySQL增量备份实战