RabbitMQ学习第三章:消息应答与消息持久化

应答:

boolean autoAck=true;(自动确认模式),一旦RabbitMQ将消息发送给消费者

消息就会从内存中删除。(这种情况下不安全,如果杀死正在执行的消费者,

就会丢失正在处理的消息)

boolean autoAck=false;(手动确认模式),如果有一个消费者挂掉,就会交付给

其他的消费者来执行,RabbitMQ支持消息应答,消费者回执一个消息告诉

RabbitMQ已经处理完成,然后RabbitMQ就会删除内存中的消息。

 

持久化:

 RabbitMQ服务挂了以后,消息会丢失,所以需要持久化。

  //创建队列

Boolean durable=false;

  channel.queueDeclare(QUEUE_NAME,durable,false,false,null); 

 (这里有个小细节,就是将Boolean durable=false改为true会报错,尽管代码写

的正确,因为我们已经定义了一个queue,这个queue未持久化,RabbitMQ不允许

重新定义(不同参数)一个已经存在的queue

 

posted @ 2020-03-18 22:20  一步一高  阅读(141)  评论(0编辑  收藏  举报