架构实战营模块 6 拆分电商系统为微服务
【背景】
假设你现在是一个创业公司的 CTO,开发团队大约 30 人左右,包括 5 个前端和 25 个后端,后端开发人员 全部都是 Java,现在你们准备从 0 开始做一个小程序电商业务,请你设计微服务拆分的架构以及微服务 基础设施选型。
【作业要求】
1. 需要明确服务拆分思路,并且将拆分后的系统架构图画出来;
2. 需要明确微服务基础设施选型思路,并选择一个微服务框架;
3. 用 1~2 页 PPT 即可。
【提示】
1. 需要应用三个火枪手原则; ——由于是全新业务,所以通过该原则拆分后台微服务数量考虑 8 个及以下为宜
2. 需要选择拆分方式; ——从 0 开始可以考虑按照业务拆分
3. 需要选择微服务框架的模式。——考虑是内部使用,电商对性能要求一般较高,所以使用 RPC 调用,选择 Dubbo 框架
模块划分
首先因为是从新开始做项目,所以选择走业务拆分微服务的方式。
电商业务根据资料(不熟),一般可以分为以下后台业务功能模块:
运维管理
商品模块
商品管理
商品目录管理
商品评论管理
销售模块
促销管理
优惠券
推荐管理
订单模块
订单管理
支付
结算
库存模块
库存管理
备货发货
退货换货
内容模块
店铺内容管理
广告管理
客户模块
客户管理
客户反馈
消息订阅
会员管理
系统模块
角色权限
系统属性
运输区域
支付管理
模块数量基本上刚好满足三个火枪手原则,所以考虑将微服务拆分为八个业务微服务模块,拆分下来结构如下:
基础设施
由于是从 0 开始构建,实际上商业上不一定有足够的时间做一个非常完善的微服务基座,所以选择按照优先级,选择先结合现有框架,搭建基础设施,然后按需逐步完善演进。
由于目前后台技术栈均为 java,同时是做微服务内部系统之间的交互,创业公司处于成本和性能等的综合考虑,使用 Dubbo 框架。
评论