模块 6 拆分电商系统为微服务
背景
假设你现在是--个创业公司的首席技术官,开发团队大约 30 人左右,包括 5 个前端和 25 个后端,后端开发人员全部都是 Java,现在你们准备从 0 开始做-一个小程序电商业务,请你设计微服务拆分的架构以及微服务。
分析
团队成员 30 人,前端 5 后端 25,后端全部都是 java 开发人员,使用 spring 全家桶的话更好;根据三个火枪手原则,划分 8 个微服务较为合适,由于开发人员不多,也没有相关领域的专家,所以采用先粗后细的方式进行服务划分,先搞一个上线再继续迭代和演进。
服务拆分
拆分 8 个服务为:
订单服务、商品服务、支付服务、检索推荐服务
用户服务、结算服务、物流服务、统计服务
后端团队目前技术栈统一为 JAVA,使用 spring 全家桶能够快速出成果;框架选择使用嵌入 SDK 的方式,选择 使用 spring cloud 提供的网关,熔断,服务注册等,相关信息如下:
熔断限流:Hytix
服务之间调用使用 Feign 和 Ribbon 调用和路由负载均衡
分布式事务和分布式锁:Seate、redisson
容器:Docker k8s
监控工具:Promesthus
日志分析:ELK
全文搜索:ES
接入服务层选型:
网关:spring Cloud gateway
熔断限流:Hytix
服务运行层选型:
服务注册与发现:Eureka
服务调用与路由:Feign、Ribbon
技术支撑层选型:
服务编排:k8s
容器化:docker
分布式事务:Seate
监控工具:Promethus
基础设施层选型:
日志:ELK
分布式锁:redisson
消息队列:rocketqMq
评论