需求与选型:订单中心怎么定边界
公司电商业务跑了一年多,下单逻辑散在三个系统里:商城自己创单,支付平台回调通知库存系统,财务月底靠 Excel 对账。大促那次库存超卖了 200 多单,复盘会上老板拍板,把下单、支付、库存、对账收进一个统一的订单中心。这本手记记录的,就是我们团队从零手搭这个订单中心的过程。
技术思路上,我们没一上来就搞微服务,而是用 Spring Boot 先做一个单体订单中心,把状态机、库存冻结、支付幂等、超时关单这些核心逻辑跑顺,再按模块拆服务。数据落在云数据库 MySQL 的分区表上,云数据库 Redis 承担分布式锁与幂等,日志服务 CLS 收集下单全链路日志。部署在云服务器 CVM 上,新用户特惠期间机器成本省了不少:腾讯云云服务器特惠。
本篇先回答三个问题:订单中心到底管什么、不管什么;单体和拆分的账怎么算;机器和技术栈怎么选。边界划不清楚,后面所有设计都会纠缠。
| 章节 | 核心问题 |
|---|---|
| 1.1 需求拆解 | 下单、支付、回滚、对账四件事的输入输出 |
| 1.2 选型对比 | 单体起步还是直接服务化,成本与风险账 |
| 1.3 机器准备 | CVM 规格与 JVM 参数怎么定 |
| 1.4 技术栈对齐 | Spring Boot 版本与云产品对应关系 |
如果你也在搭订单系统,建议先看 订单高并发的另一种解法 对照思路,再看 微服务治理的踩坑记录 了解拆分后的代价。
