写点什么

拆分电商系统为微服务

作者:Pengfei
  • 2022 年 7 月 10 日
  • 本文字数:887 字

    阅读完需:约 3 分钟

题目

【背景】

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

【作业要求】

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

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

3. 用 1~2 页 PPT 即可。

【提示】

1. 需要应用三个火枪手原则;2. 需要选择拆分方式;3. 需要选择微服务框架的模式。

 

解答

1.  微服务拆分

1.1   拆分依据

 


1. 创业公司,开发团队大约 30 人左右,后端开发人员全部都是 Java,

2. 从 0 开始做一个小程序电商业务

3. 基于 3 个火枪手原则,后端 25 个人可以维护 25/3=8 个微服务,所以微服务拆分成 8 个

 

结论:创业公司则参考业界实现按照业务一步到位的方式拆分成 8 个微服务。

 

1.2   微服务

 

参考阿里电商架构:


业务流程:


1. 由于是从 0 开始搭建,所以可以优先实现核心业务及业务中台部分。

即:订单中心、会员中心、库存中心、店铺中心、商品中心和财务中心 6 大业务模块。

2. 由于要将 6 个业务模块拆分成 8 个微服务,所以采用一对多的拆分方式。

3. 可以按照业务流程来对微服务进行一对多的拆分,由于订单中心包含的业务比较多,所以将订单中心按照业务流程拆分成 3 个微服务。

4. 将订单中心拆分成订单生成、订单支付和物流(包括商家发货、确认收货、交易成功)3 个微服务。

 

最终拆分的 8 个微服务是:订单生成,订单支付,物流,会员中心,库存中心,店铺中心,商品中心,财务中心。

 

5.  基础设施选型

场景实施选择:


微服务框架选择:

 

微服务基础设施优先级:


1. 由于后端开发人员都是 Java,所以采用嵌入 SDK 式的微服务框架。

2. 由于同一为 Java 语言,而且不需要用到 RPC,所以采用 Spring Cloud 框架搭建微服务。

 

使用 Spring Cloud 框架优先实现服务注册、服务发现、服务路由、服务容错。

1. 用 Nacos 实现服务注册和服务发现

2. 用 Feign 和 Ribbon 做远程服务调用和服务路由以及负载均衡

3. 用 Hystrix 实现服务容错,及限流、熔断等

4. 用 Spring Cloud Gateway 做为服务网关

 

用户头像

Pengfei

关注

还未添加个人签名 2017.10.17 加入

还未添加个人简介

评论

发布
暂无评论
拆分电商系统为微服务_Pengfei_InfoQ写作社区