前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >RabbitMQ消息中间件技术精讲11 高级篇四 confirm 确认消息

RabbitMQ消息中间件技术精讲11 高级篇四 confirm 确认消息

原创
作者头像
凯哥Java
修改2019-07-24 10:44:24
3670
修改2019-07-24 10:44:24
举报
文章被收录于专栏:凯哥Java

RabbitMQ消息中间件技术精讲11 高级篇四 confirm 确认消息

理解Confirm消息确认机制:

消息的确认,是指生产者投递消息后,如果broker收到消息,则会给生产者一个应答;

生产者经行接收应答,用来确定这条消息是否正常的发送到broker,这中方式也是消息的可靠性投递的核心保障!

确认机制流程图:

如何实现Confirm确认消息?

第一步:在channel上进行开启确认模式:channel.confirmSelect();

第二步:在channel上添加监听:addConfirmListener,监听成功和失败的返回结果,根据具体的结果对消息进行重新发送,或记录日志等后续操作。

代码实现:

添加确认消息监听是在生产端处理的,所以生产端代码如下:

在channel上添加确认模式:

添加监听的,我们可以看到还有返回监听,关闭shutdown的监听。这里我们选择确认监听:

说明:

在添加确认监听时候,需要一个ConfirmListener listener的参数。这里我们就使用了内部类。其中要实现两个方法:handleAck和handleNack.

handleAck:成功监听,handleNack失败监听。

其中两个产生:long 类型的消息唯一标签,boolean类型的是否批量。

我们在来看看消费者端:

启动服务:

启动消费者,我们在管控台查看:

路由exchanges列表:

队列和路由都已经创建了。接下来,我们启动生产者,观察控制是否接收到应答:

我们可以看到,生产者已经打印出投递成功的确认消息。

本节总结:

相关代码已发布在git上,欢迎大家下载查看

系列教程持续更新中~~。欢迎大家一起学习

git地址欢迎关注凯哥公众号:凯哥Java(kaigejava)或访问凯哥个人博客:www.kaigejava.com

下节预告:

在下节中,我们将讲解return消息机制

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
消息队列 TDMQ
消息队列 TDMQ (Tencent Distributed Message Queue)是腾讯基于 Apache Pulsar 自研的一个云原生消息中间件系列,其中包含兼容Pulsar、RabbitMQ、RocketMQ 等协议的消息队列子产品,得益于其底层计算与存储分离的架构,TDMQ 具备良好的弹性伸缩以及故障恢复能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档