写点什么

模块 6 作业 拆分电商系统为微服务

作者:王大胖
  • 2022 年 3 月 19 日
  • 本文字数:909 字

    阅读完需:约 3 分钟

【背景】

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

【作业要求】

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

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


一、微服务拆分思路


先参考业界经验,结合公司业务需求和业务流程,对电商系统后端进行领域划分。假设该电商系统属于 B2C 电商,商品全部为实体商品,需要物流和库存管理,且全部自营,没有第三方店铺,平台经常会有各类促销活动,由此可以得到以下几个微服务:



  1. 商品微服务:负责商品分类、商品列表、商品详情页、商品评价等业务。

  2. 支付微服务:负责支付相关的业务流程,同时财务结算也划分到该微服务中

  3. 订单微服务:负责订单创建、管理、促销和优惠的计算等。

  4. 管理微服务:负责系统的管理员后台管理和数据统计。

  5. 库存微服务:负责库存管理和物流管理。

  6. 搜索微服务:负责商品搜索。

  7. 用户微服务:负责用户信息的管理,以及用户名下订单、优惠券、订单物流信息查看等。

  8. 运营微服务:负责商品的个性化推荐、秒杀预售等活动的支持,以及优惠券的发放。

二、人员分配

基于三个火枪手原则的简单计算,按照平均 3 人负责一个微服务的分配方案,则 25 人的后端开发团队可以负责约 8~9 个微服务。但考虑到整个系统都是从 0 开始搭建,且需要首先对微服务基础设施进行落地,因此分配一部分开发人员负责基础设施的搭建和维护。


以上 8 个微服务除搜索服务外每个由 3 名后端人员负责开发维护,搜索服务 2 人,共 23 人,剩余 2 人负责微服务基础设施的搭建和维护,以及系统整体 DevOps 方面的开发。


三、微服务基础设施选型


考虑到团队规模有限,从 0 开始落地微服务基础设施时最好选用业界成熟、活跃的开源方案,由于后端开发人员均为 Java 背景,因此选用 Spring Cloud 作为微服务框架。


由于团队统一开发语言,因此在利用框架进行微服务开发时使用嵌入 SDK 模式最为合适,即微服务直接引入 Spring Cloud 框架 SDK 进行开发,有框架完成服务注册、发现、路由、监控、调度等操作,该方式实现起来最为简单,且天然支持高性能高可用。

用户头像

王大胖

关注

还未添加个人签名 2021.12.07 加入

还未添加个人简介

评论

发布
暂无评论
模块 6 作业 拆分电商系统为微服务_王大胖_InfoQ写作平台