电商系统微服务化
背景
创业公司 CTO,开发团队大约 30 人左右,包括 5 个前端,25 个后端,后端开发人员全部都是 java, 现在从 0 开始做一个小程序电商业务,对微服务拆分的架构以及微服务基础设施选型。
业务边界划分
电商各业务边界清晰,且业内多年的实践各业务域也相对稳定,另外考虑到创业公司没有业务专家支持,因此参考业界常规做法对改小程序电商业务边界划分如下。
微服务拆分
由于从 0 开始建设该电商平台,因此可以按照业务进行微服务拆分,同时考虑到公司的技术团队规模以及技术栈,将采用业务到微服务多对一的映射关系的方式对服务进行规划。
同时,对于微服务的基础设施建设方面,我们尽可能搭建完善的基础设施,不过考虑到创业刚起步,暂时无法精确的预估平台建成后推广到市场的具体表现,同时也需要权衡人力成本和时间成本。所以我们可以先按照基础设施优先级别,优先搭建最关键的几个部分,即服务发现、注册和路由,以及服务网关,其次是配置中心。其余部分可以根据后期市场反馈逐步建设和迭代。
结合微服务拆分结果和基础设施后的架构图如下。
服务示意图
服务交互示意图
微服务框架模式
由于团队统一使用 java 语言开发并且采用 RPC 协议进行微服务间通信,故采用以下框架模式。
服务网关:spring cloud gateway
RPC: dubbo
配置中信心:spring cloud alibaba nacos
服务注册、发现和路由:spring cloud alibaba nacos
评论