写点什么

模块六作业

用户头像
河马先生
关注
发布于: 2 小时前

【背景】

假设你现在是一个创业公司的 CTO,开发团队大约 30 人左右,包括 5 个前端和 25 个后端,后端开发人员

全部都是 Java,现在你们准备从 0 开始做一个小程序电商业务,请你设计微服务拆分的架构以及微服务

基础设施选型。

【作业要求】

1.需要明确服务拆分思路,并且将拆分后的系统架构图画出来;

2.需要明确微服务基础设施选型思路,并选择一个微服务框架;

3.用 1~2 页 PPT 即可。

【提示】

1.需要应用三个火枪手原则;

2.需要选择拆分方式;

3.需要选择微服务框架的模式。

1.微服务拆分

  1. 由于是创业型公司,并且业务是从 0 开始搭建电商业务,拆分方式就按照业务来进行拆分,后续在根据需要来逐步完善,功能可以参考业界的相关实现来组织业务逻辑;

  2. 后端开发 25 个,平均 3 个人负责一个微服务,根据三个火枪手原则,选择一对一拆分,一共拆分出 8 个业务服务应用,分别是前台业务聚合服务,会员服务,订单服务,库存服务,店铺服务,商品服务,财务服务,后台的运营管理服务

  3. 基于电商业务及服务拆分技巧,以及当前可以开发微服务规模,采用「一对一」的方式完成服务拆分;

  4. 由于项目是从 0 开始,因此服务拆分落地方式一步到位的方式进行落地;

2.微服务基础设施选型

  1. 由于团队服务端技术栈统一为 java 语言,因此微服务框架模式上直接使用嵌入式 SDK 的方式;

  2. 微服务基础设施有先保障服务业务运行层,即优先集成服务注册,服务发现,服务路由的功能,后续的技术支撑层在逐步完善;

  3. 微服务框架可选的有 Dubbo 和 Spring Cloud,Dubbo 采用的 RPC 的方式通讯,性能上有一定的优势,Spring Cloud 则是基于 HTTP 协议通讯,更简单易用,由于项目是从 0 开始构建,对于简单易用和提高开发效率来说,Spring Cloud 更加有优势,因此选择基于 Spring Cloud Netflix 的相关实现来作为微服务开发框架;

  4. 微服务技术基础设施层选择使用 Kafka 作为消息中间件,Redis 作为分布式缓存和分布式锁实现的中间件,配置中心暂时可以不使用,基于 Spring boot 应用内部的配置实现,后期逐步演进;

3.系统架构图画


用户头像

河马先生

关注

还未添加个人签名 2019.04.16 加入

还未添加个人简介

评论

发布
暂无评论
模块六作业