1.消息应答(ack)
//关闭自动应答 boolean autoAck=false; //监听队列 channel.basicConsume(QUEUE_NAME, autoAck, defaultConsumer); |
说明:在上一片博客中,我们用到了rabbitMQ的公平分发的时候,关掉了自动应答如上面所示。rabbitMQ是默认开启自动应答的,这样当rabbitMQ将消息发给消费者,就会从内存中将消息删除,这样会带来一个问题,如果消费者未处理完消息而宕机,那么消息就会丢失。所以,我们将自动应答关闭,当rabbitMQ收到消费者处理完消息的回应后才会从内存中删除消息。
2.消息队列持久化(durable)
//消息队列持久化 boolean durable=false; //声明队列 channel.queueDeclare(QUEUE_NAME, durable, false, false, null); |