架构实战营模块 6 作业
作业:拆分电商系统为微服务
【背景】
假设你现在是一个创业公司的 CTO,开发团队大约 30 人左右,包括 5 个前端和 25 个后端,后端开发人员全
部都是 Java,现在你们准备从 0 开始做一个小程序电商业务,请你设计微服务拆分的架构以及微服务基础
设施选型。
【作业要求】
1.需要明确服务拆分思路,并且将拆分后的系统架构图画出来;
2.需要明确微服务基础设施选型思路,并选择一个微服务框架;
3.用 1~2 页 PPT 即可。
【提示】
1.需要应用三个火枪手原则;
2.需要选择拆分方式;
3.需要选择微服务框架的模式。
【拆分方式】
1.公司新做业务,没有线上运营数据,无法按照质量属性拆分,从 0 开始构建业务系统,适合按照业务拆分;
2.从 0 到 1 构建系统,适合采用一步到位的形式,构建电商微服务系统;
3.电商业务已经是成熟的行业,有很多行业参考,可以参照业界做服务的划分;
4.完善的微服务基础设施,需要更多的预算,更多的人力,创业公司,预算有限,业务发展不明朗,适合搭建微服务的核心基础设施;
【服务拆分】
1.小程序电商业务,参考业界,包括商品,用户,物流,订单,支付,库存,商家,财务,会员,优惠,积分,促销等;
2.按照 3 人负责一个模块的原则,划分商品,用户(包括会员),订单(物流),支付,库存,商家,财务,营销(优惠,积分,促销);共 8 个模块,其中营销变化比较多,可以分配到 4 个人一块负责;
3.架构图:
【微服务基础设施】
1.创业型的公司,业务规模不可测,预算有限,选择微服务核心基础设施;服务运行层,服务注册,发现,路由,容错;服务接入层,网关,降级,安全,流控;
2.公司使用同一的 JAVA 语言,可以使用嵌入 SDK 的方式,维护简单,在应用中嵌入微服务的框架,跟应用保持高可用,不需要额外处理;
3.开发均是 JAVA 语言,可以选用 spring cloud 作为微服务的架构,spring cloud 生态微服务组件丰富,文档齐全,开发难度小;模块之间使用 http 通信,解耦合比较好;
评论