项目介绍

登录模块

  1. 注册登录,MD5加盐保存密码
  2. OAUTH2.0 社交登录

商品模块

  1. redis 缓存分类和目录
  2. 查询、修改缓存时使用分布式锁 redisson
  3. 显示商品详情使用线程池、异步编排

订单模块

  1. 远程调用查询用户信息、库存信息
  2. 保存订单,redis 保存token信息
  3. 提交订单
    1. 验证令牌防止重复提交
    2. 遍历订单详情,获取数据库价格,计算实时总价
    3. 远程调用库存服务,验库存并锁库存
  4. 消息队列
    1. 若订单创建失败,发送消息释放库存。消息监听器解锁库存,删除订单信息
    2. 主动取消订单
    3. 超时:使用延时队列,关闭订单
      1. 延时队列+死信队列
      2. 时间一到,消息被转入死信路由
      3. 死信路由把死信消息转发给死信队列
      4. 订单系统监听死信队列,获取到死信消息后,执行关单解库存操作
  5. 分布式事务采用最终一致性

库存模块

  1. 为了保证验库存和锁库存的原子性,这里直接把验证和锁定库存封装到一个方法中,并在方法中使用分布式锁,防止多人同时锁库存
    1. 遍历每一个商品,校验库存,尝试锁定
    2. 如果有一个锁定失败就取消全部锁定
    3. redis 保存锁定信息

微服务

  1. nacos
    1. 服务发现和服务健康监测
    2. 动态配置服务
  2. API 网关
    1. 多个服务的接口不直接暴露,安全
  3. 性能、监控