消息中间件技术第9讲高级第2章
在高并发场景中,消息的延迟传递被确认两次,并通过回调进行检查,以确保生产者消息成功传递的可靠性
在最后一篇文章中,我们介绍了一种方法来确保BAT制造商中生产者消息传递的可靠性。思考:在前一篇文章中,可靠交付是否适合高并发的场景?
事实上,在上一篇文章中,我们实际操作了数据库两次:业务数据仓库和消息信息仓库。在这种情况下,如果多次操作数据库,那么在高并发场景下就会出现问题。因此,我们可以使用两种情况:消息延迟传递、二次确认和回拨检查。
本文的主要内容:
对于消息的延迟传递,进行二次确认和回拨检查。
延迟交货流程图:
流程描述:
上游服务:上游服务
下游服务:下游服务
回叫服务:回叫服务
执行过程:
步骤1:
业务信息放入存储(BIZ DB)后,会向MQ发送一条消息:先发送。该消息通知下游服务处理下游业务;
步骤2:
发送第一条发送消息后,发送第二条发送延迟检查消息。此消息用于延迟检查验证。如延迟5分钟(具体延迟时间,根据实际业务情况而定);
步骤3:
下游服务有一个用于接收服务发送的消息的消费者:侦听器消费者。当消费者收到生产者发送的消息时,服务被处理。处理完成后,执行第四步;
步骤4:
当消费者消费并完成自己的业务处理时,他会向队列发送确认消息。
步骤5:
下游服务生成确认消息后,回调服务中的侦听器会进行确认,然后存储消息信息或更新消息状态。
五分钟后,延迟的验证消息生效,执行验证,并执行第六步
步骤6:
当延迟检查查询回调服务中的消息库时,发现状态中没有或没有预期的更新,延迟检查将通过主键或其他唯一标识符向上游服务发送一个RPC重发命令请求,询问该消息在下游是否正常处理。请求上游服务再次发送消息。
与第一个操作相比,这个操作的优点是减少了一次同步数据库的操作。这样可以在高并发的情况下提高效率。
好了,我们已经谈完了生产者传递信息可靠性的两种保证。在下节课,我们将解释下一个知识点:幂等性。下一节预览:
1.什么是神秘
2.如何避免大批量订单业务高峰期消息重复消费的问题?
3.业界主流的幂等运算有哪些?
1.《resend RabbitMQ消息中间件 高级篇二 高并发情况下保障消息投递可靠性》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《resend RabbitMQ消息中间件 高级篇二 高并发情况下保障消息投递可靠性》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/yule/1072479.html