项目名称:XX 企业级电商中台系统(或「XX 供应链管理平台」)
项目角色:Java 后端开发工程师
项目周期:2023.03 – 2024.06
技术栈:Spring Boot、Spring Cloud Alibaba、MyBatis-Plus、MySQL、Redis、RocketMQ、Nacos、Sentinel、Seata、XXL-JOB、Docker、Kubernetes、Prometheus + Grafana、ELK
项目背景
该项目为公司核心业务系统,面向 B 端商户与 C 端用户,提供商品管理、订单交易、库存扣减、支付回调、营销活动、数据报表等能力。系统初期为单体架构,随着业务量增长出现耦合严重、发布效率低、高峰期订单超时等问题,后逐步拆分为微服务架构。日均订单量约 50 万+,高峰 QPS 约 8000+。
个人职责与核心工作
1. 订单服务设计与开发
基于 Spring Boot + MyBatis-Plus 搭建订单核心服务,负责下单、改单、取消、超时关闭等流程。
使用 RocketMQ 事务消息 解决「订单创建」与「库存扣减」的最终一致性问题,避免超卖。
引入 Redis + Lua 脚本 实现库存预扣减,保证原子性,接口响应时间从 320ms 降至 80ms。
设计订单状态机,使用状态模式 + 事件驱动,统一处理支付、发货、退款等状态流转,减少冗余 if-else。
2. 微服务拆分与治理
参与单体到微服务的拆分,按业务域拆分为商品、订单、库存、支付、用户、营销等服务。
使用 Nacos 做注册中心与配置中心,实现配置动态刷新。
集成 Sentinel 实现限流、熔断、降级,针对下单接口设置 QPS 阈值,防止突发流量打垮库存服务。
使用 Seata AT 模式 处理跨服务分布式事务,保证订单与库存、优惠券的一致性。
3. 性能优化与高可用
针对订单列表查询慢的问题,通过 索引优化 + 分页改写 + Redis 缓存热点数据,将 P99 从 1.8s 降至 200ms。
使用 XXL-JOB 实现订单超时关闭、对账、报表统计等定时任务,支持分片广播,任务处理效率提升 3 倍。
引入 Hystrix/Sentinel 线程池隔离,避免下游支付服务抖动导致订单服务线程耗尽。
使用 Prometheus + Grafana 搭建监控看板,配合 ELK 收集日志,故障定位时间从小时级缩短到分钟级。
4. 支付与对账
对接微信支付、支付宝,封装统一支付网关,支持策略模式切换渠道。
设计支付回调幂等方案:Redis 分布式锁 + 唯一流水号 + 数据库唯一索引,解决重复回调问题。
开发每日自动对账任务,比对平台订单与渠道流水,差异自动告警,对账准确率提升至 99.99%。
5. 工程化与部署
使用 Docker 编写 Dockerfile,配合 Jenkins 实现自动化构建与部署。
基于 Kubernetes 部署服务,配置 HPA 自动扩缩容,大促期间稳定支撑 3 倍日常流量。
推动代码规范与 SonarQube 静态扫描,单元测试覆盖率从 35% 提升至 70%。