赞
踩
2023-7-26 14:38:09
2023-07-31 19:54:20
公开发布于
2024-5-20 13:14:37
以下内容源自《【Java面试项目】》
仅供学习交流使用
禁止其他平台发布时删除以下此话
本文首次发布于CSDN平台
作者是CSDN@日星月云
博客主页是https://blog.csdn.net/qq_51625007
禁止其他平台发布时删除以上此话
https://jsss-1.blog.csdn.net/article/details/128263725
配置文件的保护模式
以及绑定bind的地址
后端的CORS方案
原来使用session存储
session:CSRF 攻击详解
CSRF(Cross Site Request Forgery,跨站域请求伪造),也被称为 “One Click Attack” 或者 Session Riding,通常缩写为 CSRF 或者 XSRF 。
后端:redis存储token
前端浏览器:session storage存储
请求的时候:token=" + sessionstorage.getItem( "token")
cookie和session及token,为什么选择使用token?JWT使用
两阶段提交
保证消息的一致性
保证本地事务和消息的消费者的一致性
提交–消费
回滚–不消费
步骤:
1-4 :第一阶段
5,7 很长时间仍没结果得不到正确的执行,把半成品消息放到死信队列中,人工介入
代码需要体现1 3 6 步
把商品并和库存表分开
下单时扣减内存,
因为有人不会付款,所以存在少买问题
付款的时候进行扣减库存:会存在超卖的问题,解决:实际库存大于预先库存
在15分钟之内进行付款
扣减库存
生成订单
更新销量
步骤
创建订单时在缓存中预减库存,性能高,并且解决超卖问题
预减库存和扣减库存是异步的
如何异步扣减库存
通过mq来实现
缓存中扣减还得最终保证在mysql中扣减库存,保证最终一致性
如何check
为什么创建流水
顺序插入速度快,锁粒度小
为什么流水在最前面生成
流水最前,这样就保证回查的时能查到流水的状态
id设置成年月日开头+商品流水号
商品流水号:是for update,一致性读出来
假如减了库存但用户没有支付,怎么将库存还原继续进行抢购
订单15分钟内付款
作废订单,回收库存
延时队列
消费检查
回补库存
布隆过滤器
不一样的缓存时间
思路:1.对接口做限流;2.将用户对接口的访问次数缓存在redis中;3.通过拦截器来进行
具体步骤:
思路:秒杀开始之前,先去请求接口获取秒杀地址
1.接口改造,带上PathVasriable参数
2.添加生成地址的接口
3.秒杀收到请求,先验证PathVariable
注意事项:
1.虽然前端页面在秒杀未开始时秒杀按钮设置为不可用,但是有可能用户通过前端js代码找到秒杀地址在秒杀未开始时直接访问,秒杀接口隐藏的目的是用户通过js获取到的秒杀地址并不能让其完成秒杀功能
2.在秒杀之前要先通过Controller中的/path路径下的类随机生成一个path,然后和用户ID一起存入Redis,在执行秒杀的时候再从Redis中取Path进行验证,然后进行秒杀
短信验证码原来是输入到控制台的
添加了功能:阿里云短信验证码
2023-7-31 19:48:56
我们都有光明的未来
祝大家考研上岸
祝大家工作顺利
祝大家得偿所愿
祝大家如愿以偿
点赞收藏关注哦
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。