RabbitMQ消息应答和消息持久化

消息应答

默认情况下,消费者接受到消息后,rabbitMq就删除内存中的消息。

可以修改为手动应答模式,等待消费者手动确认后再进行内存数据删除

boolean autoAck = false;//默认方式
autoAck = true;
channel.basicConsume(QUEUE_NAME,autoAck,consumer);//设置手动提交模式
//同时在消息接收到之后进行标记修改
channel.basicAck(envelope.getDeliveryTag(), false);

消息持久化

指的是将队列的数据持久化到本地,用于防止数据丢失。

提示:已经初始化的队列不能修改参数后再次使用,只能删除再创建。

//3.声明队列
boolean durable = true;
channel.queueDeclare(QUEUE_NAME, durable, false, false, null);