镜像详情地址:https://cloud.hainiubl.com/#/excellentImageDetail?id=25333&imageType=excellent
点击镜像详情页面最下方的“添加到实验配置”按钮可直接运行该实战镜像
一、需求说明
在我们的支付系统中,用户发起一次支付请求,如果因网络问题导致请求等被重复发送,系统应确保只处理一次,不能重复处理,这就是消息幂等性。通过解决消息幂等性问题,可以提高系统的健壮性和可靠性。
二、环境介绍
机器介绍
- RabbitMQ消息幂等性解决方案镜像:共需要4台机器
- 一台6核8GB内存的机器:Idea、Dbeaver
- 一台1核1G内存的机器:Mysql
- 一台1核1GB内存的机器:RabbitMQ
- 一台1核1GB内存的机器:Redis
流程介绍
- 存在消息幂等性问题转账流程
- 用户发送转账请求到生产者程序
- 生产者程序将转账请求消息发送到消息队列
- 消费者从消息队列中拉取到消息后直接处理转账业务并记录到数据库
- 解决消息幂等性问题后的转账流程
- 用户发送转账请求到生产者程序
- 生产者程序将转账请求消息发送到消息队列
- 消费者拉去到消息后,进行业务处理时先获取锁,如果获取到锁则查询数据库判断该消息是否消费过,如果没有消费过则进行处理转账业务并记录到数据库,如果有消费过则不消费
组件介绍
- 该案例采用SpringBoot+MyBatisPlus+RabbitMQ+数据库(MySQL)来还原消息幂等性问题场景
- 该案例采用SpringBoot+MyBatisPlus+RabbitMQ+Redis+数据库(MySQL)来演示解决完消息幂等性问题
您没有该镜像的运行权限,所以无权查看该笔记
版权声明:原创作品,允许转载,转载时务必以超链接的形式表明出处和作者信息。否则将追究法律责任。来自海汼部落-海牛博士,http://hainiubl.com/topics/76610
本帖已被设为精华帖!