架构实战营 模块六作业
拆分电商系统为微服务
【背景】
假设你现在是一个创业公司的 CTO,开发团队大约 30 人左右,包括 5 个前端和 25 个后端,后端开发人员
全部都是 Java,现在你们准备从 0 开始做一个小程序电商业务,请你设计微服务拆分的架构以及微服务
基础设施选型。
【作业要求】
1. 需要明确服务拆分思路,并且将拆分后的系统架构图画出来;
2. 需要明确微服务基础设施选型思路,并选择一个微服务框架;
3. 用 1~2 页 PPT 即可。
一、服务拆分
由于是从 0 开始搭建业务平台,所以采用按业务拆分微服务,并根据业务专家做出的需求分析,参考其他电商平台的架构设计,结合现有开发团队的人力资源现状,按照三个火枪手原则,分成前台 2 个入口端、后台 6 个微服务,框架服务。
其中微服务拆分按照先粗后细分演进的原则,运用多对一的拆分方式,将多个紧密关联的业务进行整合。
用户服务:用户登录、注册、会员
商品服务:店铺、商品上下架
交易服务:订单、库存、物流
财务服务:支付、结算
营销服务:活动、优惠促销
其他服务:报表统计、客服
二、微服务框架选型
由于都是 java 开发人员,前台与后台分离采用 http 协议,所以采用 Spring Cloud 技术框架来落地。
服务接入层
•使用 Spring Cloud Gateway 作为服务网关
•使用 Hystrix 实现服务容错,以及限流、熔断等
服务运行层
•使用 Eureka 实现服务注册和服务发现
•Feign 和 Ribbon 做远程服务调用和服务路由以及负载均衡
技术支撑层
•容器使用 docker
•编排使用 k8s
•分布式事务使用 Seate
•监控工具使用 Promethus
基础设施层
•日志使用 ELK
•分布式锁使用 redisson
•消息队列使用 kafka
•缓存服务使用 redis 集群
•搜索服务使用 ES
•监控使用 CAT
版权声明: 本文为 InfoQ 作者【felix】的原创文章。
原文链接:【http://xie.infoq.cn/article/cac90dc1586ac711585ea5337】。未经作者许可,禁止转载。
评论