RabbitMQ(三)发布确认

RabbitMQ(三)发布确认,第1张

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);

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/zaji/5696547.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-17
下一篇2022-12-17

发表评论

登录后才能评论

评论列表(0条)

    保存