rabbitmq消费端auto和manual区别;处理mq的requeue
概述
auto
和manual
区别其实就如字面意思一般,auto
代表自动确认消息,只要消费者的方法执行完了,就自动告诉mq
当前消息确认.manual
则是需要手动通知mq
。不需要想的很复杂就是这么直接.
auto自动确认
- 消息成功被消费,没有抛出异常,则自动确认,回复ack。
- 当抛出
ImmediateAcknowledgeAmqpException
异常,则视为成功消费,确认该消息。 - 当抛出
AmqpRejectAndDontRequeueException
异常的时候,则消息会被拒绝丢弃,并且不会重新入队。 - 其他的异常,则消息会被拒绝,且
requeue = true
(默认就是true)时会重新入队
manual人工确认
无论有没有异常,标准只有是否主动调用basicAck()、basicNack()
等方法,没有调用则一直阻塞.
因此有异常时,(有重试就重试),抛出异常后,没有调用时,还是会一直阻塞。即使是auto
模式的那两个特殊的异常,在manual
中都是一样的,不会有特殊处理.
关于default-requeue-rejected(重新入队)属性的优先级
server:port: 9009
spring:rabbitmq:host: xxxxport: 5672username: xxxxpassword: xxxxvirtual-host: /fchanlistener:simple:#(默认值为true)在消费者出现异常时是否丢弃该消息还是重新入队,true:重新入队,入队后在队首#default-requeue-rejected: true#qos = concurrency * prefetch#concurrency: 1 #max-concurrency: 5#qos = concurrency * prefetchprefetch: 2#acknowledge-mode: auto
- 最高优先级:
AmqpRejectAndDontRequeueException
处理的requeue = false
(剩下那个特殊异常视为成功,与此处无关),抛出这个异常的时候直接就是拒绝并且丢弃。 - 其次是手动确认时
basicNack()
的boolean requeue
参数 - 接着便是这个参数定义的重新入队
default-requeue-rejected
auto
模式中,处理其他异常时,拒绝消息,此时如果配置了default-requeue-rejected=false
则会丢弃消息
rabbitmq消费端auto和manual区别;处理mq的requeue相关推荐
- RabbitMQ消费端停止问题
RabbitMQ消费端过段时间会停止消费,为了解决这个问题: 可以在消费端的首页添加计时器进行刷新操作,这样消费端就可以一直工作. <script type="text/javascr ...
- 面试官:说说RabbitMQ 消费端限流、TTL、死信队列
欢迎关注方志朋的博客,回复"666"获面试宝典 1. 为什么要对消费端限流 假设一个场景,首先,我们 Rabbitmq 服务器积压了有上万条未处理的消息,我们随便打开一个消费者客户 ...
- RabbitMQ(七):RabbitMQ 消费端限流、TTL、死信队列是什么?
消费端限流 1. 为什么要对消费端限流 假设一个场景,首先,我们 Rabbitmq 服务器积压了有上万条未处理的消息,我们随便打开一个消费者客户端,会出现这样情况: 巨量的消息瞬间全部推送过来,但是我 ...
- RabbitMQ 消费端限流、TTL、死信队列
目录 消费端限流 1. 为什么要对消费端限流 2.限流的 api 讲解 3.如何对消费端进行限流 TTL 1.消息的 TTL 2.队列的 TTL 死信队列 实现死信队列步骤 总结 消费端限流 1. 为 ...
- RabbitMQ消费端消费机制
一.确认机制 第一种 public static void getMessage() throws Exception {Connection connection = ConnectionUtil. ...
- rabbitmq.“消费端确认收到”和“推送者确认”(2)
消费端确认模式和数据安全性 当向消费者发送消息时,要考虑消息是否被处理(至少是否被消费者接收到).因为想app,connection等都可能失败,这是基于数据安全的考虑.协议提供了一种机制,当消费者连 ...
- rabbitmq 消费端代码获取队列名称_C#调用RabbitMQ实现消息队列的示例代码
前言 我在刚接触使用中间件的时候,发现,中间件的使用并不是最难的,反而是中间件的下载,安装,配置才是最难的. 所以,这篇文章我们从头开始学习RabbitMq,真正的从头开始. 关于消息队列 其实消息队 ...
- 消息中间件--RabbitMQ --- 消费端限流 -- 非常重要
什么是消费端的·限流? 假设一个场景,首先,我们Rabbitmq服务器有上万条未处理的消息,我们随便打开一个消费者客户端,会出现下面的情况: 巨量的消息瞬间全部推送过来,但是我们单个客户端无法同时处理 ...
- Rabbitmq专题:rabbitmq消费端如何做限流?
文章目录 1. 什么是消费端的限流? 2. 解决方案 3. 代码示例 1. 什么是消费端的限流? 场景:在订单高峰期,rabbitmq上已经堆积了很多消息等待消费,如果没有任何限流措施,贸然启动一个消 ...
最新文章
- 第八章 路由协议原理
- 软件测试江湖之公会武器之争
- 深入了解以太坊虚拟机
- 在tornado里面使用reverse_url
- 三维坐标系带偏航角俯仰角_浅谈三维旋转的三种方法及差异
- 基于GNS3的ssl配置
- xutils使用流程
- AcWing 828. 模拟栈
- poj - 1509 Glass Beads
- lr压测mysql数据库_MySQL数据库性能测试的方法
- java jsonarray 拷贝_JSONObject与JSONArray使用
- Spring源码下载并导入Idea
- 第3章基本程序设计结构(java知识点笔记)
- pygame研究之利用sprite的UI架构实现
- SpringBoot后台java下载文件及注意的地方
- SpringBoot整合JavaMail通过阿里云企业邮箱发送邮件
- 运城学院计算机课,主讲教师
- 计算机硬件报警声音,有关电脑发出警报声的.
- 给女友的网页小惊喜--相册万花筒
- IIS+php环境下:上传文件出现:windows server PHP Warning: mkdir(): Permission denied 解决办法