项目背景与核心目标
为应对电商平台获客成本攀升的挑战,我主导设计并落地了平台的核心增长引擎——拼团系统。该项目旨在通过“社交裂变+价格激励”模式,在提升高单价商品转化率的同时,实现低成本用户拉新。技术层面的核心目标是:构建一个能支撑“千万级用户瞬时开团、参团,且保证数据强一致性、高并发与绝对可靠”的分布式系统。
核心技术挑战与架构设计
面对拼团业务固有的“瞬时流量洪峰”、“复杂状态机”与“资金安全”三大挑战,我主导了以下核心架构设计与技术攻坚:
分层削峰与弹性架构应对“瞬时洪峰”
挑战:热门商品定时开团,瞬间涌入百万级用户创建/加入拼团请求,对数据库与库存服务造成毁灭性冲击。
解决方案:
请求链路分层削峰:在前端采用“随机延迟提交”以平滑流量;在网关层用令牌桶算法进行全局限流;在业务层,将“创建拼团”与“加入拼团”两个核心动作异步化与解耦。用户点击“开团”后立即返回“拼团中”状态,实际创建动作经由RocketMQ削峰后异步处理,提升用户体验与系统吞吐。
库存预热与分段扣减:开团前,将商品总库存按一定策略预热至Redis集群。采用“Redis分布式锁 + Lua脚本原子操作”实现拼团库存的预扣。创建拼团时预扣一份库存,成团成功后再异步扣减真实数据库库存,未成团则自动回退。此设计将99%的库存操作压力转移至缓存,保障了数据库的稳定。
最终一致性事务保障“复杂状态机”与资金安全
状态机驱动:基于Spring StateMachine设计并实现了清晰的拼团状态机,所有状态变迁均通过事件触发,状态持久化,便于监控与对账。
可靠消息事务:成团结果(成功/失败)作为关键事件,通过RocketMQ事务消息进行广播。下游的订单、优惠券、积分服务作为消费者,实现各自的数据更新。对于成团失败的场景,退款服务监听失败事件,调用支付平台接口发起批量退款,并通过补偿任务确保无一遗漏,资金安全率达到100%。