项目位置/技术/需求
在业务架构划分方面,我们采用按业务能力拆分服务的方式来解决原有单体系统复杂度高、修改影响范围大的问题
解决的问题
平台涉及商品运营、订单交易、库存处理、支付确认、消息通知和经营对账等业务,如果继续把这些逻辑放在同一个应用中,活动规则调整、库存策略变化和订单流程优化都会牵动大量代码,开发人员也难以判断修改边界
解决的方法
为解决这一问题,我组织项目组以业务职责和数据归属为依据,将系统拆分为用户、商品、订单、库存、支付、运营和对账等服务,并明确每个服务的职责范围和对外接口
具体的实现
具体实现时,服务端采用 Spring Cloud Alibaba 技术体系,各核心服务独立维护自身业务逻辑,MySQL 保存交易主数据,Redis 支撑热点商品和库存快照
例子
以用户提交订单为例,订单服务负责订单创建和状态流转,不直接维护商品详情和库存明细,而是通过标准接口获取商品状态和库存可用性
效果
通过这种拆分方式,系统从一个庞大的应用转变为多个职责清晰的服务,后续新增活动规则或调整库存策略时,可以主要在相关服务内部完成修改