写点什么

【架构实战营】模块六作业

作者:liu🍊
  • 2021 年 12 月 12 日
  • 本文字数:653 字

    阅读完需:约 2 分钟

拆分电商系统为微服务

【背景】

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

 

1. 微服务拆分方式

由于是从 0 开始做小程序电商业务,所以采取按业务拆分微服务。

电商业务一般包括商品、会员、库存、支付、物流、客服、订单、退换货、评价、营销等模块。目前有 25 个后端开发,按照三个火枪手原则,将业务拆分为 8 个微服务比较合适,具体如下:

商品服务、会员服务、库存服务、支付服务、物流服务、客服服务、订单服务、营销服务

拆分后的系统架构图如下:

2. 微服务基础设施选型

由于后端开发人员全部使用 Java 语言,且是 30 人的开发团队,所以可以考虑嵌入 SDK 的微服务框架模式,例如 Dubbo、Spring Cloud,无额外的维护工作,且天然支持高性能、高可用。

通过以下的比较可以看出,Dubbo 的定位是一款 RPC 框架,而 Spring Cloud 的目标是微服务架构下的一站式解决方案,相比于其他框架,Spring Cloud 对微服务周边环境的支持力度最大。对于中小企业来讲,使用门槛较低。

所以这里选择使用 Spring Cloud 作为的微服务框架。

  • 服务接入层

使用 Spring Cloud Zuul 作为服务网关

使用 Hystrix 实现限流、熔断等

  • 服务运行层

使用 Eureka 实现服务注册和服务发现

使用 Hystrix 实现服务容错

  • 技术支撑层

使用 Hystrix-dashboard 和 Turbine 进行服务监控

使用 Spring Cloud Sleuth 和 Zipkin 进行服务跟踪

  • 基础设施层

使用 Spring Cloud Config 进行分布式配置

用户头像

liu🍊

关注

还未添加个人签名 2021.01.26 加入

还未添加个人简介

评论

发布
暂无评论
【架构实战营】模块六作业