一、前言1.1 写作初衷很多开发工程师眼里购物车是电商中最简单、无技术含量的模块无非就是增删改查、勾选商品、结算汇总。但在亿级大促场景下购物车是整个交易链路的流量入口、承上启下的核心枢纽承接商品浏览、承接用户选品、前置价格校验、前置库存校验、预构建交易订单数据。大促期间90%的交易前置流量全部压在购物车服务上。普通开发只会实现「功能可用」架构师需要解决一系列生产级难题未登录游客加购、登录后数据合并、重复加购去重、多端数据同步、高并发加购不雪崩、购物车价格实时刷新、库存前置拦截、冷热数据分层、缓存一致性、海量用户购物车存储碾压问题。线上大量诡异问题用户购物车商品莫名消失、重复多出同款商品、价格结算和详情页不一致、登录后数据覆盖、大促加购超时、购物车脏数据堆积根源全是购物车架构设计不规范。本文基于前面的DDD分层架构、商品领域模型完整落地企业级购物车架构从零拆解建模、存储架构、核心流程、合并策略、高并发方案、踩坑复盘彻底打通电商交易前置链路。1.2 本文核心收益读完本文你将彻底掌握购物车中心DDD领域边界与核心职责杜绝业务耦合游客未登录购物车 登录用户购物车双模型架构行业标准购物车合并策略覆盖/合并/去重落地细节亿级用户下冷热数据分离、RedisMySQL双存储架构高并发加购、大促流量削峰、接口防抖、幂等设计购物车实时价格、库存联动刷新机制多端同步、脏数据清理、过期数据自动回收方案购物车高频线上故障根治与大厂面试高分思路1.3 前置回顾上一篇我们完成了商品中心完整建模吃透了SPU/SKU静态模型、类目属性、上下架高并发架构。购物车是商品静态数据 → 交易动态链路的第一站所有下单行为都必须经过购物车前置校验本文将补齐电商交易链路最关键的前置环节。二、购物车DDD领域边界与核心认知2.1 限界上下文定义购物车领域核心职责临时承载用户选品数据维护用户预购商品集合提供选品编辑、价格汇总、前置校验能力为订单交易提供可信预数据不负责交易、不负责库存落地、不负责资金结算。一句话总结购物车是临时预购容器不是持久化交易容器。2.2 领域红线边界高频踩坑2.2.1 归属购物车领域商品加购、删除、修改数量、勾选/取消勾选、购物车列表组装、未登录数据缓存、登录数据合并、购物车过期清理、选品数据聚合。2.2.2 绝不归属购物车领域商品价格计算、优惠叠加归属营销价格引擎购物车只做查询聚合不计算真实库存扣减、锁定归属库存领域购物车仅做前置校验订单创建、支付、履约归属订单交易领域商品上下架状态变更归属商品领域架构核心原则购物车只做「数据承载前置校验视图聚合」所有核心业务计算全部外溢到对应领域保证购物车服务极致轻薄、高可用、高并发。三、购物车双模型架构设计未登录 登录所有电商购物车架构都绕不开一个核心难题游客状态加购登录后无缝合并。绝大多数小厂架构直接粗暴覆盖数据导致用户加购数据丢失、引发大量客诉。大厂采用游客临时购物车 用户正式购物车双模型架构。3.1 未登录游客购物车临时态3.1.1 核心特征无用户ID依托前端生成临时唯一标识UUID关联数据数据只缓存Redis不落地MySQL减轻数据库压力设置过期时间默认7天长期不登录自动销毁仅支持加购、删除、改数量不做复杂持久化3.1.2 Redis存储结构设计Keycart:temp:{uuid}ValueHash结构存储SKU-ID、数量、加购时间、是否勾选设计优势读写极速、无DB压力、过期自动清理、适配海量游客流量。3.2 登录用户购物车持久态3.2.1 核心特征以user_id为唯一维度关联数据Redis缓存 MySQL持久化双存储支持多端同步、长期留存、编辑记录支持冷热数据分层管理3.2.2 Redis存储结构设计Keycart:user:{userId}Hash结构存储全量购物车SKU数据实现毫秒级查询。四、核心难点购物车合并策略生产级标准用户从未登录状态切换为登录状态必须触发购物车合并这是面试必考、生产高频出问题的核心逻辑。4.1 三种合并场景与取舍4.1.1 场景一游客有数据用户无数据策略全部迁移将游客临时购物车数据完整迁移至用户购物车清空游客数据。4.1.2 场景二游客无数据用户有数据策略保留原数据无需任何操作直接展示用户持久购物车。4.1.3 场景三游客、用户均有数据核心难点行业统一标准合并规则同SKU合并数量、以客户端最新数据为准不同SKU全部保留去重不覆盖相同SKU取游客最新数量覆盖或累加主流采用「客户端为准」更贴合用户体验不同SKU全部合并保留不丢失任何商品合并完成后清空游客临时购物车架构避坑绝对禁止直接覆盖用户原有购物车数据会引发大规模用户投诉。五、生产级表结构设计登录用户购物车游客购物车不落地数据库仅登录用户购物车做持久化存储下表为大厂通用生产表结构精简无冗余、索引合理、适配亿级用户。-- 用户购物车表 cart_user id BIGINT 雪花主键ID user_id BIGINT 用户ID sku_id BIGINT 商品SKU ID spu_id BIGINT 商品SPU ID sku_name VARCHAR SKU规格名称 spec_value VARCHAR 规格组合值 goods_num INT 购买数量 is_checked TINYINT 是否勾选0-否 1-是 add_time DATETIME 加入购物车时间 update_time DATETIME 更新时间 is_valid TINYINT 是否有效0-失效 1-有效 -- 核心索引 PRIMARY KEY (id) INDEX idx_user_id (user_id) -- 极速查询用户购物车列表 UNIQUE KEY idx_user_sku (user_id,sku_id) -- 唯一约束防止同一用户重复加购相同SKU INDEX idx_add_time (add_time) -- 用于冷热数据分层、过期清理设计亮点唯一索引杜绝重复加购脏数据、时间索引支撑冷热分层、状态字段支持失效商品过滤。六、亿级用户购物车冷热数据分离架构核心性能方案6.1 痛点分析普通架构所有购物车数据全部常驻数据库和缓存用户常年不清理的老旧商品、失效商品、下架商品堆积数据量爆炸、查询变慢、缓存臃肿、大促加载卡顿。6.2 冷热分层标准大厂通用6.2.1 热数据活跃购物车近30天新增/编辑/勾选过的购物车商品常驻Redis缓存 MySQL主表前台优先加载、毫秒级响应。6.2.2 冷数据沉睡购物车超过30天无任何操作、未勾选、长期静置的商品判定为冷数据。处理策略定时任务归档至购物车历史表、清空对应缓存、前台默认不展示用户点击「查看历史购物车」才加载。6.3 核心价值极大缩减热数据体量缓存命中率大幅提升大促高峰期购物车列表加载速度提升5-10倍彻底解决海量数据碾压问题。七、大促高并发加购架构方案7.1 高并发核心瓶颈大促瞬间海量加购请求直接打穿数据库、重复请求刷屏、接口抖动超时、数据重复写入。7.2 四层防护架构生产落地7.2.1 前端防抖加购按钮置灰、禁止重复点击、短时间请求拦截从入口拦截无效流量。7.2.2 接口幂等基于用户IDSKU维度做幂等校验同一用户同一SKU短时间重复请求直接拦截杜绝重复数据。7.2.3 Redis先行写入所有加购请求先写缓存、异步落库主链路无DB压力支撑十万级QPS。7.2.4 流量限流熔断网关层针对购物车接口做限流、Sentinel熔断兜底防止服务雪崩保护核心交易链路。八、购物车实时数据联动机制价格库存状态购物车最大的用户体验问题商品变价、下架、库存不足购物车不刷新用户结算报错。8.1 商品状态联动商品下架、删除、售罄后用户购物车对应商品自动标记为失效商品置灰不可勾选结算自动过滤。8.2 实时价格联动购物车列表不展示本地旧价格每次进入购物车实时调用价格引擎获取最新售价、活动价、优惠价保证价格绝对一致。8.3 库存前置校验进入购物车、结算前置校验库存库存不足直接提示避免用户选品完成后结算失败优化体验、减少无效交易请求。九、生产高频踩坑复盘真实线上事故9.1 坑点1登录购物车覆盖游客数据引发大规模客诉现象用户未登录加购多个商品登录后部分商品消失。根因架构采用粗暴覆盖策略未做合并逻辑。根治方案标准化合并策略同SKU合并数量、异SKU全部保留。9.2 坑点2无唯一索引用户购物车出现大量重复商品现象网络抖动重复提交同一SKU在购物车重复出现多条。根因数据库无唯一约束、接口无幂等控制。根治方案用户IDSKU唯一索引 接口幂等双重兜底。9.3 坑点3购物车堆积大量下架失效商品现象用户购物车几十条失效商品页面杂乱、加载缓慢、结算卡顿。根因无失效清理、无冷热分层机制。根治方案定时任务自动归档冷数据、失效商品自动标记、前台智能过滤。9.4 坑点4缓存与数据库数据不一致现象数据库已修改数量前台展示旧数据。根因更新DB未更新缓存、缓存残留旧数据。根治方案更新数据库后主动淘汰缓存异步兜底刷新保证最终一致性。十、大厂面试高频考点 架构师高分话术购物车未登录和登录状态如何设计为什么游客数据不落地数据库用户登录购物车合并策略是什么如何避免数据丢失和覆盖亿级用户下购物车如何做性能优化冷热数据分层思路大促高并发加购如何防雪崩、防重复、保性能购物车价格和库存如何保证和详情页、结算页一致高分架构思路先讲双模型架构 → 再讲合并策略 → 再讲冷热分层性能优化 → 再讲高并发防护 → 最后讲数据一致性兜底体现完整系统化架构能力。十一、本篇总结 下篇预告11.1 本篇总结本文完整落地了亿级电商购物车架构彻底告别CRUD浅层开发思维掌握双模型设计、购物车合并、冷热分层、高并发加购、数据联动、一致性兜底等架构级核心能力。核心架构思维购物车是临时预购容器轻薄、高速、高可用是第一优先级所有重计算、重事务全部外溢解耦。11.2 下篇预告下一篇我们将进入电商核心核心价格引擎与营销体系架构深度拆解商品原价、活动价、优惠券、满减、秒杀、叠加规则、价格校验、防薅羊毛机制吃透电商最复杂、面试最爱问的价格体系架构。