对于MQ中的问题记录

作为一名MQ的初学者,在学习之初有很多疑问,本文章主要记录作者在学习过程中对于一些问题的记录。
在我看来mq可以看作是一个注册中心,有消息的提供者和消费者,提供者产生消息后将消息添加至“注册中心”,然后等待消费者到“注册中心”进行消费。这个过程中有几次通讯行为,当涉及到通讯问题时不免要考虑到通讯过程中的通讯中断带来的消息丢失问题,造成消息丢失的条件有很多,今天主要记录一种情况,我们都知道,在MQ中消息只允许被消费一次,不可重复消费,对于MQ如何实现消息不被重复消费的,网上有很多博客写的很好,作者的疑问主要是在当消费者消费一条消息后,会返回一条确认信息,来表明此条消息已被消费,MQ便可以将消息标记为已消费。下面讨论一种情况,就是当消费者消费后,在返回确认消息过程中,消息丢失(不管是因为什么原因),这样MQ接收不到消费者返回的确认消息,便会认为此条消息还未被消费,这样便可以被消费者再次消费,这种情况就是重复消费。这种情况作者感到疑惑,MQ中是否有该问题的应对方法,如果有是如何实现的?

对于上述的问题,作者展开想象,如果消费者在返回确认消息时携带一个有序数列,比如说123456这样的顺序,在MQ进行确认时设置一个“检查点”,用来检查是否与之前确认的消息是按照顺序来的,例如在消费2时,发送的确认消息携带了2,但是消息丢失掉了,那么MQ接收的消息就没有2,接收到的就是下一条3,检查点检查到消息没有按照顺序,说明消息丢失了,对于如何补救这里不做想象,只考虑消息丢失情况的发现反馈。不知道这样的方法是否可行,希望在学习过程中能有深入了解,也希望各位大佬不吝赐教

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值