travel-逻辑 逻辑说明:对于一些比较复杂的流程进行预演,方便在写的时候能够更加快捷。 3.24 秒杀逻辑 123456789要求:秒杀(订单)接口幂等性,秒杀商品防止超卖 --- 提前锁定库存 + redission的信号量保证数量限制 (问题:当前用户获取锁成功,但是秒杀失败处理 -- (数量判断在第一步做)失败可能:订单超时问题,),秒杀需要写数据库 - 秒杀订单表,秒杀发送消息,通知订单模块创建订单,秒杀数量需要限制个人-记录没人购买记录(问题:当秒杀商品允许购买多个,每次需要统计当前用户购买于之前累计购买是否超出限制,超出则抛出数量限制异常,未超出,则修改记录值 ; key= skuid:userId, value:nums -- 结构:hash)问题:订单超时未支付 -- 订单模块处理逻辑,但是,秒杀数量如何回滚库存锁定问题 - 用户抢到锁,发送消息,锁定库存流程:用户点击秒杀, 秒杀上商品上线 1涉及表:秒杀商品关系表、秒杀场次信息、 12345678910* 活动redis * seckill:sessions:开始时间_结束时间 * skuIds[] * ==================== * 商品redis * Map【seckill:skus:】 * <session-skuId,skuId的图片、随机码等详细信息> * ======================== * 信号量 * <seckill:stock:随机码, 12商品只在Redis上线(问题:Redis宕机怎么办,商品上线库存问题 - 提前锁定库存,或者当前商品不可买,只有秒杀时可以买,对应的ES上线问题 -- 将商品状态改为可见,Redis上线 -- 场次session,改:只需要在Redis上线) 登录模块 单点登录实现 123456search.gulimall.com cart.gulimall.com同域请求:分布式Session + Redis实现 -- (修改Session域 *.gulimall.com 并将用户信息存储到Redisgulimall.com -》 jd.com跨域请求:1、Spring Security + JWT实现单点登录 --(第一次登录,获取token / code进行 认证流程;第二次通过token直接访问 --- 存在问题:不需要所有的跨域请求都需要权限认证; 解决-用户能够通过认证流程 想要获取当前用户信息,携带token进行用户信息请求?token只存在第一个域的cookie中; 解决-当请求跳转,会用Client1的token去认证Client2,然后Client2 与 服务器建立新的session会话,) 项目 #业务 #项目 travel-逻辑 http://example.com/2023/09/02/travel-readme/重点功能实现逻辑/ 作者 where 发布于 2023年9月2日 许可协议 DDD-CSDN 上一篇 travel-逸游天下 下一篇