拆分电商系统为微服务
【背景】
假设你现在是一个创业公司的 CTO,开发团队大约 30 人左右,包括 5 个前端和 25 个后端,后端开发人员
全部都是 Java,现在你们准备从 0 开始做一个小程序电商业务,请你设计微服务拆分的架构以及微服务
基础设施选型。
初创公司需要快速落地,搭建业务系统,所以优先按业务来划分微服务
电商业务大致可以划分为:订单、商品、支付、物流、会员、客服、库存、微服务基础设施
后端人员按照三个火枪手原则分配,3 人一组即可,微服务基础设施 4 人来做,方便并行开发
由于后端开发人员都是 Java 语言,并且是业务划分,微服务框架可以选择嵌入 SDK 得方式,天然支持高性能、高可用、维护简单
微服务落地采用一步到位
遇事不决 Spring,快速开发
整个系统需要保证最终一致性,支付得强一致性交给银行系统,所以可以用消息队列,异步提升效率
选择 Rabbitmq,因为熟悉,有管理平台,而且有可靠性保证
使用 mysql 数据库即可,电商应该很适合用关系型数据库
使用 redis 缓存,http 缓存,nginx
使用 nginx 负载均衡,使用 hash 来保持 session
最终架构如下图:
评论