社区
安静的技术控的课程社区_NO_1
深入理解RabbitMQ消息队列的使用
帖子详情
(5)消费者如何做到消息的确认
一只懒得睁眼的猫
博客专家认证
2023-01-12 23:33:05
课时名称
课时知识点
(5)消费者如何做到消息的确认
...全文
94
回复
打赏
收藏
(5)消费者如何做到消息的确认
课时名称课时知识点(5)消费者如何做到消息的确认
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
rabbitmq高级特性(1):
消息
确认
,持久性,发送方
确认
和重试机制
这里的
消息
确认
机制,指的是
消费者
对
消息
的
确认
,而不是生产者。(1)背景缘由当
消费者
把
消息
发送出去后,就会把
消息
删除。如果
消费者
这边处理
消息
成功,则相安无事;但是如果处理异常,
消息
也就会丢失。所以就需要设置
消费者
的
消息
确认
模式(2)
消息
确认
的机制
消息
确认
机制分为两个大类:自动
确认
和手动
确认
手动
确认
又分为三种模式:肯定
确认
、否定
确认
、否定批量
确认
对于rabbitmq的操作有两种,我们主要介绍第二种直接使用amqb提供的包(RabbitMQ Java Client库)使用spring集成进来的。
请教!rabbitMQ怎么
确认
同一个队列所有
消费者
收到
消息
?
求大神指导~ 查看了很多能查到的文档都没有找到明确说明的,rabbit的发布订阅和ActiveMq的发布订阅有所区别,我之前一直用 ActiveMq的后来公司要求改为rabbitMQ,请问同一个队列如果有多个
消费者
,那么如何确保所有
消费者
都恩那个收到同一条
消息
?而不是
消费者
1消费掉如图: 我写的
消费者
代码如下: publicvoidreceiveMessage(Str...
架构师系列-
消息
中间件(九)- RocketMQ 进阶(三)-消费端
消息
保障
达到最大重试次 数后,若消费依然失败,则表明
消费者
在正常情况下无法正确地消费该
消息
,此时,
消息
队列 RocketMQ 不会立刻将
消息
丢弃,而是将其发送到该
消费者
对应的特殊队列中。的
消息
交付策略,和
消息
重复消费是一对共生的因果关系,要做到不丢
消息
就无法避免
消息
重复消费,原因很简单,试想一下这样的场景:客户端接收到
消息
并完成了消费,在消费
确认
过程中发生了通讯错误,从Broker的角度是无法得知客户端是在接收
消息
过程中出错还是在消费
确认
过程中出错,为了确保不丢
消息
,重发
消息
是唯一的选择。主要用的也是这种方式。
SpringBoot集成RabbitMq,RabbitMq消费与生产,消费失败重发机制,发送签收
确认
机制
消息
重发机制,在
消费者
进行消费时,如果rabbitmq开启了
消息
重发机制,当
消费者
处理
消息
时候抛出了异常,即触发
消息
重发机制,注意,处理
消息
逻辑不要用try-catch捕捉异常,异常被捕捉后,会抛出异常信息,但不会影响代码正常执行,amqp aop会视为正常消费,不会触发重发机制。此处已验证,尚未
确认
是bug或者本身就是联动配置。关于
消息
确认
机制,自动
确认
可能导致
消息
丢失,如果单条
消息
发送至
消费者
后,
消费者
处理报错,最多触发
消息
重发机制,重发达到重发上限后,便会抛弃此
消息
,造成
消息
丢失。
RabbitMQ实现
消息
的消费
确认
,死信队列、延迟重试队列
消息
的消费
确认
实现原理: 当
消费者
的
消息
消费异常时,
消息
进入延迟重试队列,待超时后重新发送到重试队列指定的死信队列,死信队列重新消费信息,如果又出现死信情况,继续进入延时重试队列,依次循环,当重试超过3次后,
消息
进入失败队列等待相应的
消费者
特殊处理或人工处理。 死信队列 死信队列*中(dead letter)死信的
消息
来源:
消息
被拒绝(basic.reject或basic.nack)并且req...
安静的技术控的课程社区_NO_1
2
社区成员
210
社区内容
发帖
与我相关
我的任务
安静的技术控的课程社区_NO_1
励志成为一个技术大牛!
复制链接
扫一扫
分享
社区描述
励志成为一个技术大牛!
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章