架构实战营第 4 期 -- 模块六作业
作业
拆分电商系统为微服务
【背景】
假设你现在是一个创业公司的 CTO,开发团队大约 30 人左右,包括 5 个前端和 25 个后端,后端开发人员全部都是 Java,现在你们准备从 0 开始做一个小程序电商业务,请你设计微服务拆分的架构以及微服务基础设施选型。
【作业要求】
需要明确服务拆分思路,并且将拆分后的系统架构图画出来;
需要明确微服务基础设施选型思路,并选择一个微服务框架;
用 1~2 页 PPT 即可。
【提示】
需要应用三个火枪手原则;
需要选择拆分方式;
需要选择微服务框架的模式。
电商系统微服务拆分
微服务拆分
依据第 4 课的微服务架构拆分思路,由于是从 0 开始做小程序电商业务,所以选择按业务拆分微服务,服务拆分落地方式选择一步到位,按照微服务基础设施优先级逐步落地完善基础设施。
按照三个火枪手原则,每三个人开发一个微服务。有 25 个后端开发,所以拆分出 8 个微服务,具体为:订单服务、会员服务、库存服务、店铺服务、商品服务、财务服务、物流服务、促销服务。
微服务基础设施选型
后端开发人员全部都是 Java,不考虑多语言,且不考虑 RPC,又考虑到国内互联网环境,所以开源微服务框架选择 Spring Cloud Alibaba;
按照微服务基础设施优先级,选型如下:
服务注册、服务发现、配置中心:Nacos;
服务路由、服务网关:Spring Cloud Gateway;
服务容错、服务流控、服务降级:Sentinel;
服务安全:Spring Security;
日志中心:ELK;
分布式锁:Redis;
消息队列:RocketMQ;
分布式事务:Seata;
容器编排:k8s + Docker;
自动化测试、自动化部署、灰度发布:Jenkins;
服务监控、服务跟踪:Skywalking。
评论