专栏名称: 架构师之路
架构师之路,坚持撰写接地气的架构文章
今天看啥  ›  专栏  ›  架构师之路

MQ如何实现,消息幂等(MQ真的不能再背锅了)?(第33讲)

架构师之路  · 公众号  · 架构  · 2025-01-07 11:58
    

主要观点总结

文章主要介绍了在架构设计中,MQ(消息队列)如何实现消息幂等性,包括上下半场消息传递的流程和如何实现上下半场消息幂等的问题。文章还提到了消息落地、消息超时、重传和确认等核心设计点。

关键观点总结

关键观点1: MQ消息幂等性的重要性

在架构设计中,MQ的消息幂等性确保每条消息只被处理一次,避免重复处理导致的业务问题。

关键观点2: MQ上下半场消息传递流程

MQ的消息传递被解耦成上下两个半场:上半场是发送方将消息投递给MQ,下半场是MQ将消息投递给接收方。

关键观点3: 如何实现MQ上半场消息幂等

在上半场,通过生成全局唯一的inner-msg-id来实现消息去重和幂等。这个id由MQ生成,具备业务无关性。

关键观点4: 如何实现MQ下半场消息幂等

在下半场,通过业务处理方带入biz-id来实现消息去重和幂等。这个biz-id对业务唯一,业务相关。

关键观点5: 业务处理对消息幂等的要求

业务处理方需要确保biz-id的全局唯一性,并在接收消息时进行判重,以保证消息的幂等性。


文章预览

《架构师之路:架构设计中的100个知识点》 33.MQ,消息幂等性 《 MQ如何实现,消息必达?(第32讲) 》消息必达,架构设计上有两个核心设计点: 1. 消息落地; 2. 消息超时、重传、确认; 但消息重传可能导致reciever收到重复的消息,从而对业务产生影响。 MQ如何实现消息幂等呢?这还是得从MQ的消息发送流程说起。 如《 MQ如何实现,消息必达?(第32讲) 》所述,MQ能解除发布订阅者之间的耦合,它将消息投递解耦成上下两个半场: 箭头1, 上半场:发送方将消息投递给MQ ; 箭头2, 下半场:MQ将消息投递给接收方 ; MQ要想实现幂等,上下半场都必须做到幂等。 上半场,如何做到幂等? MQ消息投递上半场,流程见上图123: 1. sender将消息发送给MQ-server; 2. MQ-server将消息落地; 3. MQ-server回调sender; 如果步骤3超时,步骤1会重传,会导致步骤2收到重 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览