电商系统微服务拆分(架构实战营 模块六作业)
服务拆分
由于是创业公司从 0 开始搭建电商业务系统,因此按业务拆分微服务并搭建完善的基础设施,其中微服务的落地方式为一步到位。电商业务是一个发展已久的业务,业务有很多成熟的解决方案,所以可以参考业界的实现进行业务边界的划分,并遵循三个火枪手原则确定服务的粒度。后端同学有 25 人,考虑到从 0 搭建系统,不能全部安排做业务系统的开发,因此预留 4 位同学负责架构设计及核心基础设施搭建,剩下同学平均三个开发负责一个微服务,所以最终确定微服务数量为 7 个。
参考业界实现以及电商系统需要的必要功能,微服务拆分为以下 7 个:
会员服务
订单服务
库存服务
店铺服务
商品服务
财务服务
物流服务
基础设施选型
后端开发人员全部都是 Java,暂不考虑支持 RPC,因此微服务框架可选用主流的 Spring Cloud(属于嵌入 SDK 式)。
服务运行层
使用 Eureka 实现服务注册和服务发现。
Feign 和 Ribbon 做远程服务调用和服务路由以及负载均衡。
服务接入层
使用 Spring Cloud Gateway 作为服务网关。
使用 Hystrix 实现服务容错,以及限流、熔断等。
基础设施层
选用 Apollo 配置中心。
消息队列使用 rocketmq
分布式锁选用 redisson。
日志中心选用 ELK 方案。
技术支撑层
容器及编排选用云服务商支持的 docker+k8s。
分布式事务选用本地事物消息,简单容易实现。
自动化部署:Jenkins。
监控工具使用 Promethus+Grafana。
服务跟踪选用 Skywalking,可以做到代码无侵入性。
架构图
版权声明: 本文为 InfoQ 作者【Gor】的原创文章。
原文链接:【http://xie.infoq.cn/article/33cfc1742c5ea923b625bc31e】。未经作者许可,禁止转载。
评论