RabbitMQ使用手动ACK签收保证消息成功消费

阅读: 评论:0

RabbitMQ使用手动ACK签收保证消息成功消费

RabbitMQ使用手动ACK签收保证消息成功消费

RabbitMQ默认acknowledge-mode为auto即自动ack模式,只要有消费者接受消息,无论消费是否成功MQ都认为消费成功。网络原因和消费者自身程序原因都有可能导致这条消息没有被正确消费处理,手动Ack的方式就可以较为严格的保证消息终被成功消费。

需要注意的是手动ACK与重试机制一样都需要考虑幂等性问题,设置ACK失败重新消费的次数,并且每次消费都要校验幂等性。

YML配置开启手动Ack模式

spring:rabbitmq:host: 127.0.0.1port: 5672username: guestpassword: guestlistener:simple:prefetch: 1concurrency: 5max-concurrency: 10acknowledge-mode: manual #手动ack 默认是auto自动retry:enabled: false #关闭重试;默认情况消费异常会无限重试,但是重试与手动ACK作用类似因此二选一即可

DELIVERY_TAG

MQ为队列中每一条待消费的消息定义的标识,用于ack时回传。当某一条消息被拒绝ack后重新放入队列时这个标识可能被重置。

这个标识可以在headers中获取,也可以在Message的messageProperties中拿到。

Channel

com.rabbitmq.client包下的接口,通过Channel接口的方法,可

本文发布于:2024-02-01 16:28:46,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170677612637947.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:消息   RabbitMQ   ACK
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23