架构实战营模块 6 作业
拆分电商系统为微服务
【背景】
假设你现在是一个创业公司的 CTO,开发团队大约 30 人左右,包括 5 个前端和 25 个后端,后端开发人员全部都是 Java,现在你们准备从 0 开始做一个小程序电商业务,请你设计微服务拆分的架构以及微服务基础设施选型。
【作业要求】
需要明确服务拆分思路,并且将拆分后的系统架构图画出来;
需要明确微服务基础设施选型思路,并选择一个微服务框架;
用 1~2 页 PPT 即可。
【提示】
1. 需要应用三个火枪手原则;
2. 需要选择拆分方式;
3. 需要选择微服务框架的模式。
拆分思路
创业公司从 0 开始做一个电商系统,更适合按业务拆分微服务,搭建基础设施并逐步落地。可以由粗到细进行拆分,由于电商业务比较成熟可以参照业界进行划分。
根据三个火枪手原则:后端开发总共 25 人,3 个人负责一个微服务可以拆分成 8~9 个微服务。
拆分方式
按照业务拆分可以服务拆分为:首页服务、搜索服务、商详服务、订单服务、支付服务、结算页服务、购物车服务、台账服务、物流服务
微服务基础设施
由于技术栈是 Java 语言,初创团队尽量能采用工作量既能投入较少又能获得高性能和高可用的服务,所以更适合采用成熟的嵌入式 SDK 方式。
新的电商系统,流量不会太大,现阶段可以不用 RPC。可以以优先考虑使用 SpringCloud。
现阶段服务按粗粒度拆分,后期随着业务的扩大,服务拆分更细时可以考虑使用 RPC 调用方式,到时可以演进为 Dubbo 框架。
前端 5 人,资源相对充足,可以考虑在初期设计并搭建容易扩展的前端架构及基础设施,并考虑适配多端的场景(使用多端适配框架,如:UniApp、Taro 等)可以快速应对未来 3 年内的业务增长。
整体架构设计
版权声明: 本文为 InfoQ 作者【星夜】的原创文章。
原文链接:【http://xie.infoq.cn/article/6e5304e07415f5ba1c54e1c45】。文章转载请联系作者。
评论