Java使用RabbitMQ(三)–消息确认

释放双眼,带上耳机,听听看~!

消息确认
RabbitMQ 每将一个消息交付给一个消费者时,会立刻把这个消息标记为被删除,如果消费者在处理消息时怠机了,那么这个消息就彻底消失了,这很明显不符合我们的期望,我们希望在一个消费者怠机时,把这个消息交付给其他消费者处理。
所以 RabbitMQ 让消费者在处理完消息后,返回确认消息,告知RabbitMQ 你确实可以删除这条消息了。
也就是
channel.basicConsume(TASK_QUEUE_NAME, autoAck, consumer);

或者


1
2
3
4
5
6
7
1try {
2      doWork(message);
3    } finally {
4      System.out.println(" [x] Done");
5      channel.basicAck(envelope.getDeliveryTag(), false);
6    }
7

给RabbitMQ 发送确认消息的通道,和接收这条消息的信道必须是同一条通道。否则会抛出异常,所以channel不能变。

RabbitMQ判断一个消费者死亡的依据是:通道关闭,连接关闭或者TCP连接丢失。

给TA打赏
共{{data.count}}人
人已打赏
安全网络

CDN安全市场到2022年价值76.3亿美元

2018-2-1 18:02:50

安全技术

用shell脚本监控进程,挂掉后重启

2021-8-18 16:36:11

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索