电商平台微服务架构

一、业务背景
目前是一家创业公司的 CTO,开发团队大约 30 人左右,包括 5 个前端和 25 个后端,后端开发人员
全部都是 Java,现在你们准备从 0 开始做一个小程序电商业务,需要设计微服务拆分的架构以及微服务
基础设施选型。
二、微服务的架构思路
1.架构的思路

架构的场景建议

微服务的基础设施的优先级

根据上图的架构思路以及业务背景,我们可以根据业务拆分微服务,构建完善的基础设施,按照基础设施的优先级,一步到位即可。根据三个火枪手原则,大致可以分为 8(25/3)个微服务。
三、业务架构
1.微服务拆分

划分 8 个微服务之后,要选择微服务框架,选择思路如下:

由于我司是一个创业团队,成员全部是 Java 语言,采用 SDK 嵌入方式,天然支持高可用,高性能且不需要额外的维护工作,最适合目前的业务开发架构。
选择微服务的框架
2.1 Spring Cloud Alibaba 和 Spring Cloud 的关系
在这几年 Netfilix Eureka 为代表的 SpringCloud 核心中间件纷纷停止更新,再加上许多组件设计老旧,在性能上已无法满足国内大厂的要求,我们迫切需要一套符合中国特色的微服务架构解决方案。
Spring Cloud Alibaba 就是在这种背景下诞生的,Spring Cloud Alibaba 是国产的微服务开发一站式解决方案,与原有 Spring Cloud 兼容的同时对微服务生态进行扩展,通过添加少量的配置注解,便可实现更符合国情的微服务架构。
2.2 Spring Cloud Alibaba 的总体架构

相比 Spring Cloud,Spring Cloud Alibaba 提供了更完整的功能、更好用的 API,同时在中文的加持下让复杂的微服务架构变得不再高不可攀,目前 Spring Cloud Alibaba 已经是事实上的国内微服务技术标准。

将两者从不同维度进行比对,可以发现 Spring Cloud Alibaba 对服务注册、配置中心与负载均衡功能都整合进 Nacos,这样简化了微服务架构的复杂度,出问题的概率也会降低。原有的服务保护组件也调整为 Sentinel,功能更强大,使用也更加友好。最下方高亮处也可看到 Spring Cloud Alibaba 基于阿里云强大的能力提供了更多的商业组件,很多复杂的应用场景通过 结合阿里云便可实现。
根据对比,我们最终采用 Spring Cloud Alibaba 的框架进行微服务业务开发。
评论