上面所说,消费者挂了,可以通过应答方式进行再次处理。如果是MQ挂了呢?那么全部消息就丢失了?下面是MQ挂了,保证消息不丢失处理。
//声明队列代码中,设置消息持久化
boolean durable = false;//持久化声明
//声明队列
channel.queueDeclare(QUEUE_NAME, durable, false, false, null);
durable:声明好的队列,不能改变它的设置,也就是声明队列后不可以将值true和false互改,代码没错,但是运行会报错,因为持久化模式已经声明好,只能删除队列重新生成。