架构实战营 模块六作业
一、服务拆分方案
1. 拆分思路
从 0 开始搭建一个电商平台,拆分方式直接按照业务拆分微服务即可,落地方式一步到位,同时要求搭建完善的基础设施建设。
电商平台已经有非常成熟的实现方案,所以业务功能划分可以直接参考业界实现,再针对团队特点进行进一步详细划分。
根据三个火枪手原则,3 个人负责一个微服务。同时考虑到在搭建微服务系统架构时,需要同步搭建微服务基础设施,留出 4 个后端开发负责相应的工作。那么对应到后端服务方面,剩下的 21 位后端,大概可以拆分 7 个微服务。
2. 拆分结果以及业务功能示意图
根据常见的电商平台业务架构,可以有如下拆分方式:
按照业务相关性拆分,可以拆分成订单服务、库存服务、财务服务、商品服务、店铺服务、会员服务以及仓储服务共 7 个后端微服务,同时前端小组负责小程序入口以及相关展示页面的开发工作。
二、基础设施选型
所有后端开发人员都是 java 开发,可以选择基于 java 语言开发的微服务 SDK 框架,天然支持高性能高可用,无需额外维护工作,维护成本低。
微服务框架可选用主流的 Spring Cloud,比较简单易用。
使用 eureka 作为服务注册与发现中心,提供最核心最基本的微服务基础设施功能
使用 feign 和 ribbon 提供微服务之间交互以及负载均衡的能力
Hystrix 提供微服务的熔断、降级能力
使用 Spring Cloud Gateway 作为 API 网关
选用 Spring Cloud Nacos 作为配置中心
其他的微服务基础设施可以考虑逐步完善并落地,比如通过实现 ELK 方案来实现日志中心,接入 promethus 实现服务监控,根据团队的技术储备以及业务特点选择合适的消息队列(RocketMQ、RabbitMQ)等等。
三、系统架构图
版权声明: 本文为 InfoQ 作者【挖了蘑菇哩斯】的原创文章。
原文链接:【http://xie.infoq.cn/article/9c40b1825199435b8457012cd】。文章转载请联系作者。
评论