当前位置: 首页 > news >正文

面试:经典问题解决思路

1. 秒杀系统架构
参考:秒杀系统架构优化思路

2. 如何防止订单重复提交

重复提交原因:

  1. 一种是由于用户在短时间内多次点击下单按钮,或浏览器刷新按钮导致。
  2. 另一种则是由于Nginx或类似于SpringCloud Gateway的网关层,进行超时重试造成的。
方案描述优点缺点
方案一提交订单按钮置灰简单易实现,常用于短信验证码场景只能解决多次点击下单按钮的问题
方案二设计一个服务,预生成全局唯一订单号,如UUID,提交订单前先取这个唯一单号ID,然后带上ID提交,在后端通过唯一索引做幂等和防重要多请求一次、多增加了一个分布式服务、QPS高时服务压力大、数据库多设计了一个单号字段
方案三修改方案二,由前端生成唯一订单号比方案二少一次服务请求,服务器压力降低依然需要新增字段
方案四使用用户id+分隔符+商品ID拼成一个临时标识符,用它做key在redis上生成一个校验对象,并过期自动删除,提交时用这个key做校验防止重复提交只需要后端修改、不需要修改数据库
http://www.lryc.cn/news/169892.html

相关文章:

  • CG MAGIC分享3ds Max卡顿未保存处理方法有哪些?
  • [python 刷题] 238 Product of Array Except Self
  • UG NX二次开发(C#)-计算直线到各个坐标系轴向的投影角度
  • C# ComboBox 和 枚举类型(Enum)相互关联
  • Linux CentOS7 tree命令
  • 软件设计模式系列之九——桥接模式
  • 构造函数的调用规则
  • 第十章:枚举类与注解
  • ChatGPT:字符串操作问题——提取包含括号的字符串中的题干内容
  • jvm中对象创建、内存布局以及访问定位
  • C基础-操作符详解
  • 时序预测 | MATLAB实现BO-BiGRU贝叶斯优化双向门控循环单元时间序列预测
  • 【深度学习实验】线性模型(五):使用Pytorch实现线性模型:基于鸢尾花数据集,对模型进行评估(使用随机梯度下降优化器)
  • ADB底层原理
  • etcd之读性能主要影响因素
  • 【Stable Diffusion】安装 Comfyui 之 window版
  • Ansys Zemax | 如何建立二向分色分光镜
  • Mybatis学习笔记8 查询返回专题
  • 【测试开发】基础篇 · 专业术语 · 软件测试生命周期 · bug的描述 · bug的级别 · bug的生命周期 · 处理争执
  • ​bing许少辉乡村振兴战略下传统村落文化旅游设计images
  • 第三十一章 Classes - 继承规则
  • 华为云HECS安装docker并安装mysql
  • MQ - 04 基础篇_存储_消息数据和元数据的存储设计
  • JavaScript:隐式转换、显示转换、隐式操作、显示操作
  • 2023全新TwoNav开源网址导航系统源码 | 去授权版
  • Android 12 源码分析 —— 应用层 六(StatusBar的UI创建和初始化)
  • 华为云ROMA Connect亮相Gartner®全球应用创新及商业解决方案峰会,助力企业应用集成和数字化转型
  • 虚拟线上发布会带来颠覆性新体验,3D虚拟场景直播迸发品牌新动能
  • Linux arm64 pte相关宏
  • MVCC:多版本并发控制案例分析(一)