老的消息中间件投递失败的类型值_RabbitMQ消息中间件技术精讲11 高级篇四 confirm 确认消息...

本文深入探讨RabbitMQ的Confirm消息确认机制,确保消息可靠投递。通过开启确认模式channel.confirmSelect(),并添加ConfirmListener监听成功与失败的返回结果,实现消息重发或日志记录。生产者端设置确认监听,消费者端启动并创建队列与路由。通过监听应答,生产者能得知消息是否成功发送。详细代码示例已在GitHub发布,下节将讲解return消息机制。
摘要由CSDN通过智能技术生成

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

理解Confirm消息确认机制:

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

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

确认机制流程图:

c3285742cd865504b86875d70118c9d0.png

如何实现Confirm确认消息?

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

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

代码实现:

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

在channel上添加确认模式:

996bd4b1d5256059ef482332c01f82b0.png

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

9e43823c126b8692e4a998ee57f8ba2b.png
c3756532c6c88141a037229380ec5c7b.png

说明:

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

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

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

我们在来看看消费者端:

9ba1da45981000722d782a862da91a70.png

启动服务:

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

9e37c643b0203ea02354f6fce81ef7d6.png

路由exchanges列表:

269c3d94be6853b4ce2ac9fd08915d82.png

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

a4577cc4346711fe6315d0328c2f4788.png

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

本节总结:

9a046861333ce2a92c635df8e0c1b62a.png

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

下节预告:

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值