项目介绍¶
登录模块¶
- 注册登录,MD5加盐保存密码
- OAUTH2.0 社交登录
商品模块¶
- redis 缓存分类和目录
- 查询、修改缓存时使用分布式锁 redisson
- 显示商品详情使用线程池、异步编排
订单模块¶
- 远程调用查询用户信息、库存信息
- 保存订单,redis 保存token信息
- 提交订单
- 验证令牌防止重复提交
- 遍历订单详情,获取数据库价格,计算实时总价
- 远程调用库存服务,验库存并锁库存
- 消息队列
- 若订单创建失败,发送消息释放库存。消息监听器解锁库存,删除订单信息
- 主动取消订单
- 超时:使用延时队列,关闭订单
- 延时队列+死信队列
- 时间一到,消息被转入死信路由
- 死信路由把死信消息转发给死信队列
- 订单系统监听死信队列,获取到死信消息后,执行关单解库存操作
- 分布式事务采用最终一致性
库存模块¶
- 为了保证验库存和锁库存的原子性,这里直接把验证和锁定库存封装到一个方法中,并在方法中使用分布式锁,防止多人同时锁库存
- 遍历每一个商品,校验库存,尝试锁定
- 如果有一个锁定失败就取消全部锁定
- redis 保存锁定信息
微服务¶
- nacos
- 服务发现和服务健康监测
- 动态配置服务
- API 网关
- 多个服务的接口不直接暴露,安全
- 性能、监控