[镜像] 练习-RabbitMQ 消息幂等性解决方案

镜像 海牛博士 ⋅ 于 2025-01-13 11:31:38 ⋅ 71 阅读

镜像详情地址:https://cloud.hainiubl.com/#/excellentImageDetail?id=25333&imageType=excellent

点击镜像详情页面最下方的“添加到实验配置”按钮可直接运行该实战镜像

一、需求说明

在我们的支付系统中,用户发起一次支付请求,如果因网络问题导致请求等被重复发送,系统应确保只处理一次,不能重复处理,这就是消息幂等性。通过解决消息幂等性问题,可以提高系统的健壮性和可靠性。

二、环境介绍

机器介绍

  • RabbitMQ消息幂等性解决方案镜像:共需要4台机器
    1. 一台6核8GB内存的机器:Idea、Dbeaver
    2. 一台1核1G内存的机器:Mysql
    3. 一台1核1GB内存的机器:RabbitMQ
    4. 一台1核1GB内存的机器:Redis

流程介绍

  • 存在消息幂等性问题转账流程
  1. 用户发送转账请求到生产者程序
  2. 生产者程序将转账请求消息发送到消息队列
  3. 消费者从消息队列中拉取到消息后直接处理转账业务并记录到数据库
  • 解决消息幂等性问题后的转账流程
  1. 用户发送转账请求到生产者程序
  2. 生产者程序将转账请求消息发送到消息队列
  3. 消费者拉去到消息后,进行业务处理时先获取锁,如果获取到锁则查询数据库判断该消息是否消费过,如果没有消费过则进行处理转账业务并记录到数据库,如果有消费过则不消费

组件介绍

  • 该案例采用SpringBoot+MyBatisPlus+RabbitMQ+数据库(MySQL)来还原消息幂等性问题场景
  • 该案例采用SpringBoot+MyBatisPlus+RabbitMQ+Redis+数据库(MySQL)来演示解决完消息幂等性问题
您没有该镜像的运行权限,所以无权查看该笔记

版权声明:原创作品,允许转载,转载时务必以超链接的形式表明出处和作者信息。否则将追究法律责任。来自海汼部落-海牛博士,http://hainiubl.com/topics/76610
本帖已被设为精华帖!
本帖由 海牛博士 于 5天前 置顶
点赞
成为第一个点赞的人吧 :bowtie:
回复数量: 0
    暂无评论~~
    • 请注意单词拼写,以及中英文排版,参考此页
    • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`, 更多语法请见这里 Markdown 语法
    • 支持表情,可用Emoji的自动补全, 在输入的时候只需要 ":" 就可以自动提示了 :metal: :point_right: 表情列表 :star: :sparkles:
    • 上传图片, 支持拖拽和剪切板黏贴上传, 格式限制 - jpg, png, gif,教程
    • 发布框支持本地存储功能,会在内容变更时保存,「提交」按钮点击时清空
    Ctrl+Enter