“蜂巢”是一个旨在应对千万级日活用户和高并发场景的新一代B2C电商平台。项目采用基于Spring Cloud Alibaba的微服务架构,彻底重构了原有的单体应用,旨在提升系统性能、可扩展性和开发迭代效率。项目核心模块包括用户中心、商品服务、订单服务、库存服务、支付服务和积分服务。
微服务设计与开发:
独立负责订单服务和积分服务的数据库设计、接口开发和业务逻辑实现。
使用 Spring Cloud OpenFeign 声明式调用用户服务和商品服务,实现了服务间的解耦与高效通信。
基于 Spring Cloud Gateway 编写全局过滤器,实现了统一的用户鉴权(JWT)、接口限流和日志记录。
高并发与性能优化:
应对秒杀场景: 在商品详情页和秒杀接口中,使用 Redis 预减库存,并通过 Redis分布式锁 防止超卖。将验证、库存、订单等步骤异步化,最终将下单流程提升至可支撑5000+ QPS。
解决缓存热点问题: 针对热门商品缓存击穿问题,采用 Redis 互斥锁(SETNX) 策略;对于缓存穿透,使用布隆过滤器(通过Redisson实现)进行无效请求过滤。
数据库优化: 对订单表进行了水平分表(按用户ID取模),并针对慢查询SQL进行了索引优化和Explain分析,使核心接口响应时间从平均500ms降低到80ms以下。
分布式系统问题解决:
分布式事务: 在“下单”业务中,涉及扣库存、创建订单、增加积分等多个微服务。采用 Seata 的AT模式保障了核心业务流程的最终一致性,避免了人工对账补数据的麻烦。
接口幂等性: 为防止用户重复提交订单,利用 Redis + Token机制 实现了下单接口的幂等性设计。
消息可靠性: 在使用RabbitMQ处理订单超时取消时,采用了确认(Confirm)机制和持久化方案,并通过死信队列(DLX)进行失败消息的重试与补偿,保证了消息100%不丢失。