Java使用RabbitMQ(四)--消息持久化

原创 2018年04月17日 09:20:36

消息持久化
消息确认,保证了消费者die时,消息不丢失。
而消息持久化,则是为了保证RabbitMQ 怠机时,消息不丢失。

消息持久化需要以下操作:

boolean durable = true;
channel.queueDeclare("hello", durable, false, false, null);

需要注意的是,RabbitMQ不允许修改已经定义过的队列的属性,所以队列已经被声明过的话,就不能再修改它的持久化策略。

以上操作是保证队列 是持久化的,但是重启rabbitMQ后会发现,消息丢失了,队列还在。所以还需要对消息持久化。

channel.basicPublish("",queueName, MessageProperties.PERSISTENT_TEXT_PLAIN,(i+++message).getBytes("utf-8"));

这样即使rabbitMQ 在运行时down了,也不会丢失消息。

生产消息放到 queue声明必须和消费方的queue声明一致,不然消费方获取消息时会报错。

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ljz2016/article/details/79969792

标准模板库(1)

 标准模板库作者:Alexander Stepanov, Meng Lee翻译:kary『这篇文章有些地方自己也不太懂。本来不想上传的,只是因为看看现在的某些出版社实在太黑心了。有些书本来没多少页数,...
  • kary
  • kary
  • 2002-05-27 09:25:00
  • 1427

轻松搞定RabbitMQ(三)——消息应答与消息持久化

这个官网的第二个例子中的消息应答和消息持久化部分。我把它摘出来作为单独的一块儿来分享。 Message acknowledgment(消息应答)        执行一个任务可能需要花费几秒钟,你可能会...
  • xiaoxian8023
  • xiaoxian8023
  • 2015-09-24 18:48:38
  • 16347

Rabbit mq订阅方式获取消息并可设置持久化

Rabbit 通过方式获取消息:订阅方式其实是向queue注册consumer,通过rpc向queue server发送注册consumer的消息,rabbitMQ Server在收到消息后,根据消息...
  • liyantianmin
  • liyantianmin
  • 2015-06-30 16:41:43
  • 1853

RabbitMQ之队列与消息持久化

在之前的例子中,我们所用的队列都是临时队列,当服务chongqi
  • xiaoyatouvsanan
  • xiaoyatouvsanan
  • 2014-06-27 22:12:14
  • 2844

RabbitMQ之消息持久化

消息的可靠性是RabbitMQ的一大特色,那么RabbitMQ是如何保证消息可靠性的呢——消息持久化。 为了保证RabbitMQ在退出或者crash等异常情况下数据没有丢失,需要将queue,exc...
  • u013256816
  • u013256816
  • 2017-03-08 16:53:06
  • 13309

RabbitMQ队列与消息的持久化

当有多个消费者同时收取消息,且每个消费者在接收消息的同时,还要做其它的事情,且会消耗很长的时间,在此过程中可能会出现一些意外,比如消息接收到一半的时候,一个消费者宕掉了,这时候就要使用消息接收确认机制...
  • u013213157
  • u013213157
  • 2017-08-15 17:43:18
  • 111

RabbitMQ支持消息的持久化

RabbitMQ支持消息的持久化,也就是数据写在磁盘上,为了数据安全考虑,我想大多数用户都会选择持久化。消息队列持久化包括3个部分:   (1)exchange持久化,在声明时指定durable ...
  • hanruikai
  • hanruikai
  • 2015-06-04 11:32:24
  • 1866

RabbitMQ 队列消息持久化

参考链接: https://www.cnblogs.com/Keep-Ambition/p/8044752.html  假如消息队列test里面还有消息等待消费者(consumer...
  • appleyuchi
  • appleyuchi
  • 2018-01-28 22:12:33
  • 103

RabbitMQ消息的持久化

RabbitMQ消息持久化需要将消息和队列都持久化 队列持久化 //为Channel定义queue的属性,queueName为queue名称 第二个参数持久化标志,为true表示持久化 chann...
  • a491857321
  • a491857321
  • 2016-02-19 22:51:55
  • 905

RabbitMQ(三)—消息应答与消息持久化

rabbitmq
  • qq_34149805
  • qq_34149805
  • 2017-01-17 16:31:47
  • 844
收藏助手
不良信息举报
您举报文章:Java使用RabbitMQ(四)--消息持久化
举报原因:
原因补充:

(最多只允许输入30个字)