RabbitMq死信队列以及其它问题

之前放在有道云笔记,现在分享出来

RabbitMq

自动签收,也就是自动ack,都是执行完方法再签收的,本身使用了AOP方式来自动签收ack。

所以手动签收如果放到最后,其实是一样的。

不管是自动签收,还是手动签收,在开启了次数重试之后,重试到application.yml里面写的配置的次数之后,就会进入DLQ,如果配了的话。

关于什么样的消息才会进DLQ,如果配了DLQ的话,RabbitMq是每个队列都可以配独立的DLQ的,所以DLQ能单独处理。

消息进DLQ的情况:

  1. 设置了超时时间的消息,在队列待到超时后,会进入配置好的DLQ,如果没有配置DLQ,会直接丢失消息。
  2. 当队列满了之后,进来的消息,会被丢到DLQ,如果没有DLQ,会直接丢失消息。
  3. 重试到规定次数,还没有签收的消息,会被丢到DLQ,如果没有DLQ,会直接丢失消息。

关于保证消息传递:

1)保证生产者消息投递到队列,那就需要comfirm机制,投递之后回调comfirm方法,判断ack,是true,就是投递成功,false,就是失败,失败就可以重新产生消息;

2) 保证消费者消息成功,使用手动ack,失败重试

1)简单队列,不经过交换机,直接经过队列

2)工作队列,就是谁ack快,谁就多消费一些消息

3) 交换机 fanout ,所有队列收到一样的消息

4) 交换机 direct ,根据队列绑定交换机时的routingKey,消息带着什么routingKey,就投递到哪个队列

5)交换机 topic,这个并不是主体的意思,在RabbitMq里是direct的通配符版

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值