• 不能超抢
  • 剩余的到期需要返还
  • 通常使用的解决高并发问题方案

方案一:使用内存操作替代实时的 DB 事务操作

可能丢数据

方案二:使用乐观锁替代悲观锁

同时抢的只能有一个能成功,可能手慢的反而能抢到

微信红包系统的高并发解决方案

方案三:将关于同一个红包的所有请求聚合到同一个

双维度库表设计:db_xx.t_y_dd xx/y 红包 ID 的 hash 值后三位,dd 的取值范围 01~31,一个月最多 31 天

通过分流 + 队列 + 流控解决高并发场景下库存锁竞争的情况;

通过事务操作串行化保证资金安全,避免出现红包超发、漏发、重复发的情况;

通过红包 ID + 循环天双维度分库表规则提升系统性能。