高并发热点账户处理方案
平台补贴账户、商户收款账户——这些”热点账户”被大量并发更新,数据库行锁成为瓶颈。如何设计记账方案?
一、热点账户问题的本质
- 1.1 什么是热点账户——频繁被更新的账户(如平台补贴账户)
- 1.2 数据库行锁的瓶颈——TPS 上限约 500-1000
- 1.3 业务特点——余额正确性要求极高
二、方案 1:汇总记账
- 2.1 流水明细实时写入
- 2.2 账户余额定时汇总——每小时/每天更新一次
- 2.3 优点——零并发冲突
- 2.4 缺点——余额不实时
三、方案 2:缓冲记账
- 3.1 多个缓冲账户——
account_0、account_1、…、account_9 - 3.2 写入时分发到不同缓冲账户——分散热点
- 3.3 定时汇总——缓冲账户 → 主账户
- 3.4 查询时——SUM(主账户 + 所有缓冲账户)
- 3.5 缓冲账户数量 = 预期 TPS / 单行锁 TPS
四、方案 3:异步记账
- 4.1 用户账户实时扣减
- 4.2 平台账户异步记账——MQ 削峰
- 4.3 最终一致性——T+1 对账
- 4.4 风险——平台账户余额可能暂时不准
五、方案 4:Redis 缓冲
- 5.1 Redis 记录当日变动——
INCRBY - 5.2 定时刷回数据库——定时任务
- 5.3 Redis 持久化保证不丢
六、选型与组合
- 6.1 资金安全要求高 → 缓冲记账
- 6.2 允许一定延迟 → 汇总/异步记账
- 6.3 综合推荐——缓冲记账 + Redis 加速
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 谜思录!