写点什么

电商系统微服务拆分设计

用户头像
Lane
关注
发布于: 5 小时前

一、背景

假设你现在是一个创业公司的 CTO,开发团队大约 30 人左右,包括 5 个前端和 25 个后端,后端开发人员全部都是 Java,现在你们准备从 0 开始做一个小程序电商业务,请你设计微服务拆分的架构以及微服务基础设施选型。

要求

  • 需要明确服务拆分思路,并且将拆分后的系统架构图画出来;

  • 需要明确微服务基础设施选型思路,并选择一个微服务框架;

提示

  • 需要应用三个火枪手原则;

  • 需要选择拆分方式;

  • 需要选择微服务框架的模式。

二、推导过程

考虑到是从 0 开始构建服务,鉴于团队内没有业务专家。因此我们将参考业界典型的小程序电商系统来进行业务划分。

1.业务领域划分

参考业界已有的 B2C 电商,划分出如下 商品,支付,订单,管理 4 个子域。

2.依据三个火枪手的原则进行简单计算,按照平均 3 个人负责一个微服务的分配方案来计算,则 25 个后端开发人员可以负责约 7~8 个微服务。但考虑到目前团队还没有为微服务的经验,需要先对微服务基础设施进行落地,因此分配一部分开发人员负责基础设施的搭建和维护更为稳妥。

综上,将业务子域重新划分为如下 7 个微服务:

1.用户微服务:负责用户信息的管理,包括用户的积分属性。

2.支付微服务:负责订单支付相关的具体业务。

3.商品微服务:负责商品的展示,推荐,搜索逻辑。

4.订单微服务:负责订单创建,管理,积分抵扣优惠券等实际商品价格的逻辑。

5.库存微服务:负责商品库存管理。

6.物流微服务:负责该订单商品的物流服务。

7.管理后台微服务:负责整体系统的后台管理配置和数据统计。

以上 7 个微服务将由 21 个后端共同完成,剩下的 4 个人负责基础设施的搭建和维护。


3.整体架构图如下

三、基础设施选型

考虑到团队规模有限,后段开发人员均为 Java 背景,因此考虑选择嵌入 SDK 模式的维服务模式最为合适,因此微服务基础设施将直接选用 Spring Cloud 框架 SDK 进行研发,因为这种方式实现起来最为简单,且提然啊支持高性能高可用。


用户头像

Lane

关注

还有梦想 2018.07.05 加入

还未添加个人简介

评论

发布
暂无评论
电商系统微服务拆分设计