电商大促场景下瞬时流量可达日常数百倍,传统单体架构易出现超卖、雪崩与重复下单。本项目面向电商秒杀、限量抢购类业务场景,采用微服务拆分与异步削峰设计,解决高并发下库存一致性、请求限流与数据库承压问题,保障秒杀活动在高流量冲击下稳定运行。
点击空白处退出提示
电商大促场景下瞬时流量可达日常数百倍,传统单体架构易出现超卖、雪崩与重复下单。本项目面向电商秒杀、限量抢购类业务场景,采用微服务拆分与异步削峰设计,解决高并发下库存一致性、请求限流与数据库承压问题,保障秒杀活动在高流量冲击下稳定运行。
1、微服务架构:基于 Kitex RPC 拆分网关、活动、秒杀、订单四个服务,etcd 实现服务注册与发现;
2、高并发控制:Redis Lua 原子脚本扣减库存,防超卖、防重复下单,Redis Sentinel 三哨兵保障高可用;
3、异步削峰:秒杀请求经 RabbitMQ 削峰,订单服务多 worker 异步落库,降低数据库瞬时压力;
4、统一鉴权限流:网关层 JWT(HS256)统一鉴权自动注入 user_id,Redis 固定窗口限流 10000 QPS;
5、工程化交付:统一错误码与日志体系,Docker Compose 一键编排 13 个容器,附压测脚本自动校验数据一致性。
系统采用四层微服务架构,整体使用 Go 语言开发。
1、网关层:基于 CloudWeGo Hertz 框架实现 HTTP 入口,集成 JWT(HS256)鉴权中间件,登录后签发 Token,网关解析后通过 RPC metadata 自动注入 user_id;采用 Redis 固定窗口算法实现 10000 QPS 限流。
2、服务层:活动、秒杀、订单三个服务基于 Kitex RPC 框架开发,Thrift IDL 定义接口,通过 etcd 完成服务注册与发现。
3、并发控制层:秒杀核心使用 Redis Lua 原子脚本完成库存扣减与用户去重,保证防超卖、防重复;Redis 部署为 1 主 2 从 3 哨兵的 Sentinel 架构,故障自动转移。
4、异步层:秒杀成功后消息写入 RabbitMQ 削峰,订单服务 5 个并发 worker 消费并落库 MySQL,库存与订单最终一致;MQ 发送失败时自动回滚 Redis 库存。
5、部署与验证:Docker Compose 一键编排 13 个容器,附自研压测脚本(5000 并发),压测后自动核对 Redis 库存、订单数与重复用户三项一致性指标。



评论