栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

RabbitMQ(三)发布确认

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

RabbitMQ(三)发布确认

废话连篇

可靠消费:手动应答
可靠生产:

  1. 队列持久化:重启兔子,队列还在
  2. 消息持久化 :重启兔子,队列中的消息还在
  3. 发布确认模式:发布成功之后告知生产者
队列持久化
channel.queueDeclare("q", true, false, false, null);
//创建队列时
//true表示开启持久化

Tips:如果目标队列没开持久化,会报错

消息持久化
//发送消息时
channel.basicPublish("", "q", 
	MessageProperties.PERSISTENT_TEXT_PLAIN, 
(i + "").getBytes());

特点:

  • 会在缓存中存在一段时间,然后再写入磁盘。
  • 单独存在不具有可靠性
测试

方法:发送一条消息,重启电脑,看看消费者。

发布确认模式

开启模式
channel./confirm/iSelect();
同步

会阻塞,直到持久化结束,用的不多

//发布之后,true成功,false失败
boolean flag = channel.waitFor/confirm/is();
异步
//发布之前,ok成功,no失败
/confirm/iCallback ok = (deliveryTag, multiple) -> {
	System.out.println("成功" + deliveryTag);
};
/confirm/iCallback no = (deliveryTag, multiple) -> {
	System.out.println("失败" + deliveryTag);
};
channel.add/confirm/iListener(ok, no);
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/696409.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号