无法手动ACK,感觉都是自动直接就ACK了,而且NACK回复的消息监听不到
来源:2-13 Rabbitmq高级特性-消费端特性讲解_流控服务和ACK重回队列
qq_闲汪_0
2020-08-19 11:56:23
消费者
//生产上一般不会开启自动ACK,因为要保证消息的准确消费
channel.basicConsume(queueName, false, consumer);
生产者
channel.confirmSelect();
//添加publisher消息监听
channel.addConfirmListener(new ConfirmListener() {
@Override
public void handleAck(long deliveryTag, boolean multiple) throws IOException {
//消息投递成功处理
System.out.println("【ACK confirm】deliveryTag:" + deliveryTag + ",multiple:" + multiple);
}
@Override
public void handleNack(long deliveryTag, boolean multiple) throws IOException {
//消息丢失处理
System.out.println("【NACK confirm】deliveryTag:" + deliveryTag + ",multiple:" + multiple);
}
});
channel.basicPublish(normalExchange, normalRoutingKey, true, properties, msg.getBytes());1回答
qq_闲汪_0
提问者
2020-08-19
生产者的confirmListenter监听的是broker的ACK事件吧?消费者的basicACK是发送给broker的?好像生产者并不能接受到消费者的ACK回复。
相似问题