【消息队列MQ使用场景及测试点总结】

消息队列MQ是一种应用程序对应用程序的通信方法。本质是一种先进先出的数据结构。

MQ将消息持久化后,发送Ack消息给Client,此处有可能因为网络问题导致Ack消息无法发送到Client,那么Client在等待超时后,会重传消息;

消息传输保证层级?

At most once:最多一次。消息可能会丢失,但不会重复传输。

At least once:最少一次。消息绝不会丢失,但可能会重复传输。

Exactly once:  恰好一次,每条消息肯定仅传输一次。

生产者如何将消息可靠投递到MQ?

1.Client发送消息给MQ

2.MQ将消息持久化后,发送Ack消息给Client,此处有可能因为网络问题导致Ack消息无法发送到Client,那么Client在等待超时后,会重传消息;

3.Client收到Ack消息后,认为消息已经投递成功。

MQ如何将消息可靠投递到消费者?

1.MQ将消息push给Client(或Client来pull消息)

2.Client得到消息并做完业务逻辑

3.Client发送Ack消息给MQ,通知MQ删除该消息,此处有可能因为网络问题导致Ack失败,那么Client会收到重复消息,这里就引出消费幂等的问题;

4.MQ将已消费的消息删除

来自 <必知必会 RabbitMQ面试题 33道(附答案)_田维常的博客-CSDN博客>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值