模块 6 作业
从 0 开始设计一个小程序电商
从以下三个方面考量
1 拆分方式:业务拆分
2 搭建完善的基础设施,并根据优先级服务运行层,服务接入层,服务基础设施和服务支撑层逐步完善
3 采用一步落地方式
考虑到从 0 开始构建服务,团队内没有业务专家,参考业界典型的小程序电商系统来进行业务划分
业务领域划分
参考业界已有的电商,划分出以下业务领域:
根据三个火枪手原则, 按照平均三个人一个微服务,有 25 个后端,可以拆分出大约 8 个微服务。但由于公司是创业公司, 公司还没有任何基础设施,需要分派一个组来进行基础设施中优先级最高的服务运行层的服务注册,服务发现及服务路由, 必要的服务接入层中的网关和安全,服务基础设施中的消息队列及分布式锁。
综上所述,把整个业务领域划分到七个微服务:
1.用户微服务:负责用户信息的管理,包括用户的积分属性。
2.支付微服务:负责订单支付相关的具体业务。
3.商品微服务:负责商品的展示,推荐,搜索逻辑。
4.订单微服务:负责订单创建,管理,积分抵扣优惠券等实际商品价格的逻辑。
5.库存微服务:负责商品库存管理。
6.物流微服务:负责该订单商品的物流服务。
7.管理后台微服务:负责整体系统的后台管理配置和数据统计。
基础设施选型
后端全是 java 开发,不需要跨语言,只需要服务之间调用,不需要 RPC, 所以选择 Spring cloud 作为 SDK 作为基础设施框架,使用 Spring cloud security 作为提供安全框架,使用 nacos 配合 Spring cloud 作为服务注册,服务发现和服务路由,Spring cloud gateway 作为服务网关。
整体架构图如下:
评论