RabbitMQ消息中间件技术精讲11 高级篇四 confirm 确认消息
2023-02-18 16:30:19 时间
RabbitMQ消息中间件技术精讲11 高级篇四 confirm 确认消息
理解Confirm消息确认机制:
消息的确认,是指生产者投递消息后,如果broker收到消息,则会给生产者一个应答;
生产者经行接收应答,用来确定这条消息是否正常的发送到broker,这中方式也是消息的可靠性投递的核心保障!
确认机制流程图:
如何实现Confirm确认消息?
第一步:在channel上进行开启确认模式:channel.confirmSelect;
第二步:在channel上添加监听:addConfirmListener,监听成功和失败的返回结果,根据具体的结果对消息进行重新发送,或记录日志等后续操作。
代码实现:
添加确认消息监听是在生产端处理的,所以生产端代码如下:
在channel上添加确认模式:
添加监听的,我们可以看到还有返回监听,关闭shutdown的监听。这里我们选择确认监听:
说明:
在添加确认监听时候,需要一个ConfirmListener listener的参数。这里我们就使用了内部类。其中要实现两个方法:handleAck和handleNack.
handleAck:成功监听,handleNack失败监听。
其中两个产生:long 类型的消息唯一标签,boolean类型的是否批量。
我们在来看看消费者端:
启动服务:
启动消费者,我们在管控台查看:
路由exchanges列表:
队列和路由都已经创建了。接下来,我们启动生产者,观察控制是否接收到应答:
我们可以看到,生产者已经打印出投递成功的确认消息。
本节总结:
相关代码已发布在git上,欢迎大家下载查看
系列教程持续更新中~~。欢迎大家一起学习
下节预告:
在下节中,我们将讲解return消息机制
相关文章
- SPI:Java的高可扩展利器
- Java反射机制清空字符串导致业务异常分析
- 7000+字图文并茂解带你深入理解java锁升级的每个细节
- 全文手敲代码,教你用Java实现扫雷小游戏
- 4种方法教你如何查看java对象所占内存大小
- 手绘图解java类加载原理
- Java中的线程到底有哪些安全策略
- Java中观察者模式与委托,还在傻傻分不清
- 一图详解java-class类文件原理
- Java遇上SPL:架构优势和开发效率,一个不放过
- 长篇图解java反射机制及其应用场景
- [java并发编程]基于信号量semaphore实现限流器
- java并发编程-StampedLock高性能读写锁
- 【java并发编程】ReentrantLock 可重入读写锁
- 【java并发编程】Lock & Condition 协调同步生产消费
- Java synchronized对象级别与类级别的同步锁
- java并发编程JUC第十二篇:AtomicInteger原子整型
- java并发编程JUC第十一篇:如何在线程之间进行对等数据交换
- java并发编程JUC第十篇:CyclicBarrier线程同步
- java并发编程JUC第九篇:CountDownLatch线程同步