项目总结点

电商业务

 

功能:商家入驻、店铺管理、用户登录注册、商品的属性,管理,上下架。

模块:购物车,导购,营销,交易,支付,配送,售后。

主要开发的系统:交易、支付系统。商品系统和交易比较核心。

 

架构方案:

 系统架构维度:业务架构,选型。流量入口,数据治理,数据选型。

  画一下架构图

 

  • CDN:内容分发网络,有cache的功能;也可以不设置cache功能,所有请求都设置成回原。
  • LVS1机房挂了,直接起到LVS2,是瞬时的切换,比较高效。
  • NGINX反向代理,上层要配LVS做代理模型。LVS通过网络层代理,LVS会把公网IP配置到CDN上。
  • 代理到后端机房之后---后端服务治理问题
  • springcloud技术,eureka(多机房部署时要支持多机房的发现,还是需要改造,同事会破坏机房隔离性,查问题不方便。所以现实中,eureka还是每个机房自有的。),zuul、hystrix
  • 商品服务、交易服务
  • 数据层,mysql数据库。nosql数据服务es数据存储使用。redis缓存服务。
  • mysql做分库分表

 

  商品查询交互

  • 接口 - 商品服务 
    • 秒杀高QPS
      • 缓存
        • 商品主信息查询,失效时间长一些,1hour
          • 什么样的内容存redis:商品、运费、类目、品牌模型
          • 更新方式:商家接口更新数据库,再异步更新缓存,
          • 1.缓存可以直接删除,等待下一次读
          • 2.更新缓存同时
        • 价格、库存、销量,要实时更新。
          • 另存一个redis,缓存更新,数据一致性问题。
          • 下单后,异步不可以,要实时扣减。
          • 库存
          • 1.引入队列系统,聚簇作用,发生交易之后,推送销量更新消息,这个消息5s统一处理一次就行。
          • 价格
          • 1.实时性高时,商品价格服务,修改价格时,同步修改价格redis。
          • 2.价格用的redis
            • 平销的普通价格
            • 活动价格
    • 一个是查主题内容。一个时查询详情内容。

  业务结构:

  • 商品查询
    • 领域模型思想
      • 商品基础、品牌、类目、库存、详情描述、销量、价格、运费。
      • 商品模型
      • 品牌模型
      • 库存模型、库存数量、分仓、详情
      • 销量模型、数量、
      • 价格模型
      • 运费
  • 交易下单
    • 业务单
      • 订单ID
    • 主子单
      • 多个商品单,在一个订单里
      • 每个子单有商品ID和商品数量
    • 支付单
      • 一个订单会有多个支付订单,会存在支付失败的,或者联合扣款
    • 营销工具
      • 优惠券ID,活动ID,这个放到主单里也可以。
    • 下单流程
      • 商品系统校验价格
      • 库存扣减
      • 运费计算
      • 营销优惠计算,扣减优惠券
      • 支付
        • 发起支付
        • 支付宝下单
        • 支付宝支付成功回调
        • 消息接收
        • 支付成功、失败、30min超时
      • 保存订单
    • 回滚30min支付超时,异常回滚,主动退单
      • 回滚库存
      • 回滚优惠券

 

posted @ 2023-06-04 15:10  CodingOneTheWay  阅读(12)  评论(0编辑  收藏  举报
回到顶部