1. 实现核心转账流程:校验参数(防自转、金额防负数) -> 固定顺序加锁 -> 扣减/增加余额 -> 记录流水。 2. 引入悲观锁:通过 MyBatis 的 SELECT ... FOR UPDATE 实现数据库行级排他锁,保证并发下的强一致性。 3. 防死锁设计:在 Java 应用层通过对转出/转入账户的主键 ID 进行大小排序(从小到大),强制统一加锁顺序,彻底破坏死锁的环路等待条件。 4.
- 采用 Spring Boot 基础框架。 - Redis 层:使用 SETNX 实现分布式防重,使用 DECR 实现原子预扣库存,拦截 99.9% 的无效流量。 - MQ 层:引入 RabbitMQ 进行异步削峰,保护底层数据库免受瞬间高并发冲击。 - DB 层:使用 MySQL 的 version 字段实现乐观锁,确保极端情况下的数据一致性,杜绝超卖。 - 测试:编写 CountDownLa