MQ常见问题

一、消息丢失

1、 生产者丢消息
场景:
生产者在将数据发送到MQ的时候,可能由于网络等原因造成消息投递失败。

解决方法:
当MQ接收到消息之后,给生产者发送确认信息,若生产者等待MQ的确认信息超时,则再次发送消息。

2、MQ自身丢消息
场景:
MQ接受到消息后,还未将消息转发给消费者时,MQ服务宕机等原因造成消息丢失。

解决方法:
消息持久化保存。

3、消费者丢消息
场景:
消费者刚接收到消息还没处理完成,消费者服务宕机等原因造成消息丢失。

解决方法:
当消费者消费完消息后,给MQ发送确认信息,若MQ等待消费者的确认信息超时,则再次发送消息。

二、重复消费

场景:

  1. MQ接收到消息后,因为网络等原因,确认信息发送延迟,此时生产者等待超时,再次发送了消息。
  2. 消费者消费完消息后,因为网络等原因,确认信息发送延迟,此时MQ等待超时,再次发送了消息。

解决方案:
给每个消息生成一个唯一id,MQ和消费者每次处理消息时,根据id判断是否已处理过该消息。

三、顺序消费

消息乱序的原因:
消息生产:多个生产者或一个生产者内多个线程一起生产消息;
消息消费:多个消费者或一个消费者内多个线程一起消费消息。

解决方案:

  1. 全局顺序:所有消息都按照顺序生产、消费
    在这里插入图片描述
    只有一个队列;一个生产者,单线程生产消息;一个消费者,单线程消费消息。

  2. 部分顺序:同一类的消息按照顺序生产、消费
    同一类的消息进入一个队列;
    消息生产:
    (1)生产者,单线程生产一类消息
    (2)生产者,每个线程生产一类消息
    消息消费:
    (1)消费者,单线程消费一类消息
    (2)消费者,每个线程消费一类消息
    在这里插入图片描述
    在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值