模块六作业
【背景】
假设你现在是一个创业公司的 CTO,开发团队大约 30 人左右,包括 5 个前端和 25 个后端,后端开发人员
全部都是 Java,现在你们准备从 0 开始做一个小程序电商业务,请你设计微服务拆分的架构以及微服务
基础设施选型。
【作业要求】
1.需要明确服务拆分思路,并且将拆分后的系统架构图画出来;
2.需要明确微服务基础设施选型思路,并选择一个微服务框架;
3.用 1~2 页 PPT 即可。
【提示】
1.需要应用三个火枪手原则;
2.需要选择拆分方式;
3.需要选择微服务框架的模式。
1.微服务拆分
由于是创业型公司,并且业务是从 0 开始搭建电商业务,拆分方式就按照业务来进行拆分,后续在根据需要来逐步完善,功能可以参考业界的相关实现来组织业务逻辑;
后端开发 25 个,平均 3 个人负责一个微服务,根据三个火枪手原则,选择一对一拆分,一共拆分出 8 个业务服务应用,分别是前台业务聚合服务,会员服务,订单服务,库存服务,店铺服务,商品服务,财务服务,后台的运营管理服务
基于电商业务及服务拆分技巧,以及当前可以开发微服务规模,采用「一对一」的方式完成服务拆分;
由于项目是从 0 开始,因此服务拆分落地方式一步到位的方式进行落地;
2.微服务基础设施选型
由于团队服务端技术栈统一为 java 语言,因此微服务框架模式上直接使用嵌入式 SDK 的方式;
微服务基础设施有先保障服务业务运行层,即优先集成服务注册,服务发现,服务路由的功能,后续的技术支撑层在逐步完善;
微服务框架可选的有 Dubbo 和 Spring Cloud,Dubbo 采用的 RPC 的方式通讯,性能上有一定的优势,Spring Cloud 则是基于 HTTP 协议通讯,更简单易用,由于项目是从 0 开始构建,对于简单易用和提高开发效率来说,Spring Cloud 更加有优势,因此选择基于 Spring Cloud Netflix 的相关实现来作为微服务开发框架;
微服务技术基础设施层选择使用 Kafka 作为消息中间件,Redis 作为分布式缓存和分布式锁实现的中间件,配置中心暂时可以不使用,基于 Spring boot 应用内部的配置实现,后期逐步演进;
评论