RabbitMQ消息应答和消息持久化
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);