三大模块 一 消费者确认机制 二 消费失败处理 三 业务幂等性
reject这种情况就是,我们抛出的全局异常之类,像这种错误可以直接返回reject告诉mq处理失败并拒绝处理改消息
这张图表示的含义:
发送者发送消息到队列,消费者接受到消息返回ack,这时候会从队列中删除这条消息
发送者发送消息到队列,消费者接受到消息返回nack,这时候会重新投递消息,并重新消费
发送者发送消息到队列,消费者接受到消息返回reject,这时候会从队列中删除这条消息
用java代码如何演示none模式
首先在配置文件中添加acknowledge-mode: none 不建议使用,只要有消息立刻返回不管有没有异常
这是发送者发送的消息 控制台
启动消息者
这时候发现,消费者还没有处理玩就直接被ack。这就是none模式
用java代码演示auto模式
看控制台,
然后用启动消费者
说明消息还在,然后放开断点
因为抛出异常,所以会一直投递一直投递,造成循环。这种情况也是很危险
如何实现reject异常呢,这种异常一般是转换异常
启动消费者
他会抛出reject异常会从里面自动删除