Rabbit mq 消息应答与消息持久化
消息应答
boolean autoAck = false;
channel.basicConsume( QUEU_NAME,autoAck, consumer );
boolean antoAck = true;(自动确认模式) 一旦
rabbit mq 将消息分发给消费者,就会从内存中将消息删除。
boolean autoAck = false;(手动模式),如果有一个消费者挂掉就会交付给其他的消费者, rabbitmq 支持消息应答,消费者发送一个消息应答,告诉rabbitmq这个消息我已经处理完成,可以删除。然后rabbit 就删除内存中的消息。
消息持久化
// 声明队列
boolean durable = false;
channer.queueDeclare(QUEUE_NAME,durable,false,false,null);
我们将程序中的 boolean durable = false;改成 true;是不可以的;因为在rabbit 中我们已经定义了一个test_work_queue 这个队列未持久化的。rabbltmmq不准许重新定义(不同参数)一个已存在的队列。
除非在rabbitmq 控制台删除这个队列,或者重新定义一个队列。