拆分电商系统为微服务
【背景】
假设你现在是一个创业公司的 CTO,开发团队大约 30 人左右,包括 5 个前端和 25 个后端,后端开发人员
全部都是 Java,现在你们准备从 0 开始做一个小程序电商业务,请你设计微服务拆分的架构以及微服务
基础设施选型。
【关键字-分析】
关键字:0 开始做、小程序、电商业务、后端开发人员全部都是 Java25 人,5 个前端
【思路】
0 开始做:拆分方式选择按业务拆分、
搭建完善基础设施,按照微服务基础设施优先级逐步落地、
服务拆分方式落地方式选择一步到位
小程序:数据包有限制,无法加入过多的内容、功能
电商业务:商业模式和业务成熟度高,属于互联网项目,业务变更频繁
后端开发全是 java:技术栈可以统一
【微服务基础设施-分析】
1、服务运行层:由于统一了技术语言为 java,于是选择嵌入 SDK 的微服务框架模式,因为无需额外的维护工作、天然支持高性能和高可用。同时由于该系统对 RPC 没有要求,于是选择 springcloud.可以避免开发 api 网关。
其次、由于是电商业务,环节众多,包含下单、支付、物流多个环节,有些环节需要保持一致性,有些环节需要保证可用性,eureka,适用于高可用场景,zoomkeep,适用于一致性场景,所以使用 nacos 作为 RPC 框架中的注册中心,同时 nacos 可以作为配置中心
2、服务接入层:spring cloud zuul、hystrix
3、技术支撑层:git+jekenis+docker
4、基础设施层:由于支付场景对一致性有要求,rocketMQ,可以支持事务消息。
【业务-分析-拆分】
前台:微信小程序
业务中台:订单中心、库存中心、店铺中心、商品中心、会员中心、财务中心
后台:仓储物流、资金结算
总结:按照三个火枪手的原则,大体上可以根据业务 1 对 1 才分服务。
评论