RabbitMQ-2-工作模式及参数配置
一、workqueues
多个消费者监听同一个队列,提高处理速度
相比简单模式多加了消费者,类似于分布式,加快了处理消息的速度
实际项目只声明一次队列,一般声明在消费者,因为消费者是一直运行的,不能关闭资源
代码加一个消费者,就是复制一份消费者类即可,偶数就平均分配,奇数就一边2个一边3个
二、publish/subscribe发布订阅(又叫扇出模式)
将一个交换机里面的消息给多个队列,(消息同时发送到邮件队列和短信队列,两个消费者,一个监听邮件,一个监听短信(sms:short messaging service)
类似于建两个最简单的场景,只不过要发两遍消息,而上面的只需要发一次消息
2.1 交换机
不同于简单模式,发布订阅要自定义交换机,类似于定义队列我们也定义在消费者;不写路由,路由为""
交换机有两个参数,一个是名字,一个是交换机的类型,发布订阅模式就是FANOUT(扇出,用的枚举)
2.2 绑定交换机和生产者
因为没有路由,把交换机和队列绑上即可,它会把消息发送到所有队列,没有路由还是惯例写""
三、Routing(路由模式)
队列和交换机绑定在一起,消息根据路由发送到指定队列
3.1 交换机和队列绑定路由
四、Topic(通配,以后都用这种)
解决有些消息既要进消息队列,又要进短信队列
定义路由的通配规则
这种两个队列都会进
五、消息属性
生产者,注意这里的过期时间是字符串
消费者都取得到
六、消息确认机制
为保证消息在发送和处理时消息不丢失
生产者发送消息,有确认机制
消费者处理消费,有确认机制
6.1 生产端确认机制
6.1.1 生产者确认
监听要开一个线程
注意:要监听确认发送了消息,连接不能关闭
6.1.2 return机制
如果路由不到,返回监听信息,也是消息传递失败
没发到信息,要在handleReturn里面进行记日志,记录数据库或人工干预等等
6.2 消费端确认机制(ACK和限流)
消费者确认机制:自动确认,手动确认
自动:
手动:
6.2.1 消费者确认
限流一般和ack一起用:
限流一般一次一个,多个消费者谁快谁处理的消息多
自动确认改为false
最后要执行.basicAck才算处理信息结束,否则消息还会给你退回来,保证消息不丢
6.2.2 NACK重回队列
消费者处理失败NACK
try{
ack();
}catch(){
//处理失败,nack()
可以重回队列
可以不重回队列
消息丢失
有死信队列进入死信队列,没有死信队列消息丢失
nack();
}
消息直接丢失可以解决,进入死信队列,下面详讲
还有一种处理办法,就是消息拒绝,拒绝后消息也会丢失,让处理失败的信息不丢失,解决方法也是死信队列
少了个批量处理的参数,默认一次处理一个
七、队列属性
所有消息的过期时间不是字符串,为数字类型
八、死信队列
RabbitMQ其实应该叫死信交换机,沿用其他消息队列的概念
8.1 什么是死信
满足以下条件的消息,都会进入死信队列
8.2 死信测试
8.2.1 先搭建一个接受消息的交换机和队列
8.2.2 搭建死信交换机和死信队列
8.2.3 绑定死信交换机和队列
其实就是设置普通队列的两个属性
8.2.4 再建一个消费者来专门处理死信队列
略
九、死信队列实现延迟队列
处理秒杀经典案例:下的订单都放到订单队列,设定过期时间,没有消费者处理它,等到过期时间全部进入死信队列,然后处理死信队列,处理过的消息再进行redis内订单操作
RabbitMQ-2-工作模式及参数配置相关推荐
- RabbitMQ的工作模式Topics 通配符,test测试代
RabbitMQ有以下几种工作模式 : 1.Work queues 工作队列 2.Publish/Subscribe 发布订阅 3.Routing 路由 4.Topics 通 ...
- RabbitMQ的工作模式Routing 路由,test测试代
RabbitMQ有以下几种工作模式 : 1.Work queues 工作队列 2.Publish/Subscribe 发布订阅 3.Routing 路由 4.Topics 通 ...
- 聊一聊RabbitMQ六种工作模式与应用场景
简介 今天我们来聊一聊 RabbitMQ 的工作模式与其对于的应用场景有哪些. 你可能会疑惑,作为 MQ 不就是生产者将消息发送到 MQ ,再讲消息发送到消费者哪里,任务不就完成了吗? 其实,不是这样 ...
- RabbitMQ,RabbitMQ 的工作模式,Spring 整合 RabbitMQ,Springboot 整合RabbitMQ
什么是RabbitMQ 1.1 MQ概述 MQ全称 Message Queue(消息队列),是在消息的传输过程中保存消息的容器.多用于分布式系统之间进行通信. ⚫ MQ,消息队列,存储消息的中间件 ⚫ ...
- RabbitMQ的工作模式
RabbitMQ工作模式 Work queues Publish/Subscribe Routing Topics Header RPC Work queues work queues工作模式是一个服 ...
- RabbitMQ六种工作模式:simple work publish routing topic rpc
simple简单模式 消息产生着§将消息放入队列 消息的消费者(consumer) 监听(while) 消息队列,如果队列中有消息,就消费掉,消息被拿走后,自动从队列中删除(隐患 消息可能没有被消费者 ...
- RabbitMq的工作模式 介绍+测试代码,以及三种Exchange模式介绍.
RabbitMq的提供了六种模式分别是:简单模式,工作模式,发布\订阅模式,路由模式,通配符模式,RPC远程调用模式 下面将详细介绍常用的前五种模式,附上测试代码. 公共的代码---连接工具类: pu ...
- RabbitMQ六种工作模式
Simple 模式 消息产生着将消息放入队列 消息的消费者 (consumer) 监听 (while) 消息队列,如果队列中有消息,就消费掉,消息被拿走后,自动从队列中删除 (隐患 消息可能没有被消费 ...
- RabbitMQ的工作模式和使用场景
RabbitMQ工作模式 1.基本模型 2.RabbitMQ应用场景 MQ全称为Message Queue,即消息队列, RabbitMQ是由erlang语言开发,基于AMQP(Advanced Me ...
- 学习之路-RabbitMQ(三):RabbitMQ的工作模式
RabbitMQ有以下几种工作模式 : 1.Work queues 工作队列 2.Publish/Subscribe 发布订阅模式 3.Routing 路由模式 4.Topics 通配符模式 5.He ...
最新文章
- 第90节:Java中的Linux基础
- ubuntu 修改ip
- Oracle 小技巧
- RabbitMQ——自动退出的解决方案
- springboot web项目_Vue、Spring Boot开发小而完整的Web前后端分离项目实战12
- mediawiki 搭建
- 21张GIF动图让你秒懂数学原理
- unity3d自动寻路教程
- InsecureRequestWarning: Unverified HTTPS request is being made.解决方法
- java ftl_.ftl文件 是什么文件 freemaker
- printf常用输出格式总结
- linux查看完整历史记录
- C++-OpenCV(1)-连通区域
- centos 时间自动同步_centos 设置时间同步
- 硅谷裁员潮下的华人码农
- JDBC--藤原豆腐店自用
- java BIO tcp服务端向客户端消息群发代码教程实战
- java多线程(分分钟基础秒杀)
- 服务器usb驱动安装系统安装失败怎么办,Win7系统安装USB3.0驱动程序失败怎么办?Win7系统安装USB3.0驱动程序失败的解决方法...
- vue2的生命周期函数
热门文章
- IOS 证书安装详解
- windows 利用R定时抓取猫眼专业版电影票房
- 一加手机·关闭应用双开储存空间
- 行之有效:第一章观后有感
- 实体零售关店潮之下 这个美国品牌偏不信邪
- (2011-12-11 旧博文搬运)away3d太阳系DEMO
- 网络(HCNA00笔记)
- 直连线和交叉线的做法
- unity警告“Tiled GPU perf. warning: RenderTexture color surface (0x0) was not cleared/discarded, doin”
- 稻盛和夫:企业明天的希望寄托在每个人身上