高并发系统设计面试题

🔥🔥🔥 超高频问题(几乎必问)

  1. 让你设计一个秒杀系统,你会考虑哪些问题?
  2. 如果你的业务量突然提升100倍QPS你会怎么做?
  3. 库存扣减如何避免超卖和少卖?
  4. 订单到期关闭如何实现
  5. 让你设计一个订单号生成服务,该怎么做?
  6. 如何设计一个购物车功能?
  7. 你是如何进行SQL调优的?
  8. Redis如果挂了,你怎么办?
  9. 如何解决消息重复消费、重复下单等问题?
  10. 不用redis分布式锁,如何防止用户重复点击?

🔥🔥 高频问题

  1. 如何用Redis实现朋友圈点赞功能?
  2. Redis的zset实现排行榜,实现分数相同按照时间顺序排序,怎么做?
  3. 如何实现"查找附近的人"功能? 🏷️IoT
  4. 消息队列使用拉模式好还是推模式好?为什么?
  5. 如果让你实现一个RPC框架,会考虑用哪些技术解决哪些问题?
  6. 一个订单,在11:00超时关闭,但在11:00也支付成功了,怎么办?
  7. 一个支付单,多个渠道同时支付成功了怎么办?
  8. 如果让你实现消息队列,会考虑哪些问题?
  9. 不使用synchronized和Lock如何设计一个线程安全的单例?
  10. 索引失效的问题是如何排查的,有哪些种情况?

🔥🔥 高频问题(续)

  1. 说一说多级缓存是如何应用的?
  2. 从B+树的角度分析为什么单表2000万要考虑分表?
  3. 线上接口如果响应很慢如何去排查定位问题呢?
  4. 怎么做数据对账?
  5. MySQL千万级大表如何做数据清理?
  6. 高并发的库存系统,在数据库扣减库存,怎么实现?
  7. MySQL热点数据更新会带来哪些问题?
  8. 和外部机构交互如何防止被外部服务不可用而拖垮
  9. MySQL里有2000W数据,Redis中只存20W的数据,如何保证redis中的数据都是热点数据?
  10. 用了一锁二查三更新,为啥还出现了重复数据?

🔥 中频问题

  1. 每天100w次登录请求,4C8G机器如何做JVM调优?
  2. Kafka,单分区单消费者实例,如何提高吞吐量
  3. 40亿个QQ号,限制1G内存,如何去重?
  4. 如果单表数据量大,只能考虑分库分表吗?
  5. InnoDB为什么不用跳表,Redis为什么不用B+树?
  6. 为什么MySQL用B+树,MongoDB用B树?
  7. 一个接口3000QPS,接口RT为200MS,预估需要几台机器?
  8. 在100M内存下存储一亿个整数,其范围在1到2亿,如何快速判断给定到一个整数数值是否存在?
  9. 数据库逻辑删除后,怎么做唯一性约束?
  10. 电商下单场景,如何设计一个数据一致性方案?

🔥 中频问题(续)

  1. 如何实现缓存的预热?
  2. 如何实现百万级数据从Excel导入到数据库?
  3. 如果需要跨库join,该如何实现?
  4. 应用占用内存持续增长,但是堆内存、元空间都没变化,可能是什么原因?
  5. 和其他公司做数据交互时,有什么需要注意的?
  6. 4C8G的机器,各项系统指标,什么范围算是正常?
  7. 4C8G 16台 和 8C16G8台,不考虑成本的情况怎么选?
  8. 如何预估一个系统的QPS?
  9. 如何做SQL调优:用了主键索引反而查询很慢?
  10. 如果要存IP地址,用什么数据类型比较好? 🏷️IoT

🔥 中频问题(续2)

  1. 一次RPC请求,客户端显示超时,但是服务端不超时,可能是什么原因?
  2. 为什么不建议使用MC实现订单到期关闭?
  3. 如何实现敏感词过滤?
  4. 为啥不要在事务中做外部调用?
  5. 如何做平滑的数据迁移?
  6. 如何实现一个抢红包功能?
  7. 使用分布式锁时,分布式锁加在事务外面还是里面,有什么区别?
  8. 加分布式锁之后影响并发了怎么办?
  9. 数据库乐观锁和悲观锁以及redis分布式锁的区别和使用场景?
  10. 为什么很多公司数据库不允许物理删除(delete) 数据

📱 中低频问题

  1. 为什么不用分布式锁来实现秒杀?
  2. 为什么不直接用原生的BlockingQueue做消息队列
  3. SpringEvent和MQ有什么区别?各自适用场景是什么?
  4. 如何实现百万级排行榜功能?
  5. 为什么一定要做限流?不应该服务好客户吗?不应该是加机器吗?
  6. 大型电商的订单系统,如何设计分库分表方案?
  7. 你认为分布式架构一定比单体架构要好吗?
  8. 代码中使用长事务,会带来哪些问题?
  9. Redis的内存如果用满了,会挂吗?
  10. 给第三方提供接口调用,需要注意些什么?

📱 中低频问题(续)

  1. 应用启动后前几分钟,Load、RT、CPU等很高,如何定位?可能原因是什么?
  2. 分库分表时,每个城市的人口不一样,有的密集,有的稀疏,如何均匀分布?
  3. 项目中,如果日志打印成为瓶颈,该如何优化?
  4. 分布式系统,用户登录信息保存在服务器A上,服务器B如何获取到共享session
  5. 实现一个登录拉黑功能,实现拉黑用户和把已经登录用户踢下线?
  6. 调用第三方接口支付时,第三方接口显示支付成功,但是在调用方显示失败,什么原因?
  7. 读取一千个文件,一个线程读取和开十个线程读取,哪种方式效率高?
  8. a,b 的联合索引,select b where a = xx,无法走索引覆盖什么原因?
  9. 大量的手机号码被标记成骚扰电话,如何存储这些号码? 🏷️IoT
  10. 把商品加入购物车时断网了,该怎么在重新联网时处理?

📱 低频问题

  1. 不用大于号小于号怎么判断两个正整数大小?
  2. 外卖系统,一天一千万条数据,用户需要查到近30天的数据,商家也要查询到30天的数据,怎么设计表?
  3. 进入电梯里断网后又恢复刚开始为什么网络慢? 🏷️IoT
  4. 一个表有用户和时间两个列,现有3个需求:根据用户查;根据日期查;根据用户和日期查;怎么建立索引?
  5. 做一个过滤黑名单网址的系统,你觉得要怎么实现,会用到哪些数据结构?
  6. 全国的酒店价格(千万级)需要在某个瞬间比如7点发生变动,怎样高性能准点进行变更?
  7. 服务器有多个节点,线上出现用户进入缓慢,监控服务器cpu和缓存没有压力,可以从哪些方面排查?
  8. 账户里面只有十块钱,同时发来两笔订单一共大于十块钱,怎么保证不超花?
  9. 项目中需要应用发布和ddl变更,需要如何保证不出错?
  10. 有100个优惠券,有几千万流量,怎么保证服务器不垮掉,怎么保证最前面的人能抢到这个券?

📱 低频问题(续)

  1. 秒杀场景下,怎么加库存?
  2. 5分钟内最多允许用户尝试登录3次,如果错误次数超过限制,需要对该用户进行锁定,怎么实现?
  3. 两个不相关的网站A和B,如何实现A登录B也能自动登录
  4. MQ出现消息乱序了如何解决?
  5. 在for循环中调用数据库,有什么缺点?如何优化?
  6. MySQL单表一千万条数据怎么做分页查询?
  7. MySQL千万级数据量,查询如何做优化?
  8. 什么是数据归档,一般是怎么做的?
  9. 第三方接口不稳定经常超时,如何处理三方接口异常不影响自己的接口?
  10. Redis、MySQL和MongoDB的区别是什么,各自适用场景

📱 低频问题(续2)

  1. Redis实现分布式锁,加锁的时候,redis不可用了咋整?
  2. 如果让你实现短链服务,如何生成不重复的短链地址?
  3. MySQL如果突然断电,会发生数据丢失吗?
  4. 防止接口被恶意刷流量,除了限流还应在代码层面做哪些防护?
  5. 库存扣减、创建订单,如何拆成TCC?
  6. Redis保存库存的时候,如何避免被Redis清理掉?
  7. 如果token被窃取了,是不是就能伪造登录了?
  8. 如果有1TB的数据需要排序,但只有32GB的内存如何排序处理?
  9. 如何从1TB的搜索日志中找出搜索量最高的10个关键词?
  10. 用@Scheduled执行定时任务,如何避免集群的并发问题

📱 低频问题(续3)

  1. 下单支付过程,点击跳转支付,输入密码,支付完成后跳转到订单页,整个过程可能会有什么问题,架构方面做哪些设计
  2. 有一张上百万条数据的单表,从前端页面、Java后台、数据库三个层面做哪些查询优化
  3. 假设还有很多内存,有什么情况还会频繁fullgc?
  4. 压测600没问题,上线后300就扛不住了,可能是什么原因?
  5. Redis和MySQL的一次普通查询,RT在什么范围内是合理的?
  6. 5亿条数据放到布隆过滤器中,大概需要多大内存?如何估算?
  7. 为了避免丢消息问题需要落表,如何设计这张消息表?
  8. 有一个银行系统,对实时性要求比较高,你会怎么选择垃圾回收器
  9. 百万级会员的用户平台,如何实现快到期的会员的消息提醒
  10. A线程获取Redis分布式锁,但那一刻做了主从的切换,B线程能获取到锁吗?

📱 低频问题(续4)

  1. 如果设计一个缓存,需要考虑哪些方面?
  2. 扫表任务,如何写SQL可以避免出现跳页的情况?
  3. 阿里出的Java开发手册看过吗,对哪条规约印象深刻?
  4. 购物车中如何解决重复下单的问题?
  5. 让你实现一个短链服务,你会考虑哪些问题?

🏷️ 物联网相关问题标识说明

🏷️IoT 标记的问题在物联网场景中特别常见:

  • 13. 如何实现"查找附近的人"功能? - 物联网设备定位、地理位置服务
  • 50. 如果要存IP地址,用什么数据类型比较好? - 物联网设备IP管理
  • 79. 大量的手机号码被标记成骚扰电话,如何存储这些号码? - 物联网设备号码管理
  • 83. 进入电梯里断网后又恢复刚开始为什么网络慢? - 物联网设备网络重连机制

热度说明

  • 🔥🔥🔥: 90%以上面试会问到
  • 🔥🔥: 70-90%面试会问到
  • 🔥: 50-70%面试会问到
  • 📱: 30-50%面试会问到

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/92839.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/92839.shtml
英文地址,请注明出处:http://en.pswp.cn/diannao/92839.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【通识】如何看电路图

1. 电路图 1.1 基础概念 电路图即电原理图。 电路图第一种是说明模拟电子电路工作原理,用图形符号表示电阻器、电容器、开关、晶体管等实物,用线条把元器件和单元电路按工作原理的关系连接起来。 第二种则是说明数字电子电路工作原理的。用图形符号表示…

SpringBoot实战指南:从快速入门到生产级部署(2025最新版)

一、为什么SpringBoot依然是Java开发的首选? SpringBoot自2014年发布以来,已成为Java企业级开发的事实标准框架。根据2025年最新调研数据显示,全球78%的Java微服务项目基于SpringBoot构建,其核心优势在于: 约定优于配置…

新房装修是中央空调还是壁挂空调好?

这个要看户型和投资金额,大户型空间适合装中央空调,因为空间大有足够的地方安装,功率也可以根据面积大小进行配置,整体配置一个外机就行了,整体的装修效果比较规整,就是多花点,使用成本也稍高点…

如何理解泊松分布

文章目录一、引例——鲸鱼研究二、泊松分布一、引例——鲸鱼研究 有生态学家对生活在北冰洋水域的鲸鱼进行了跟踪研究,他们利用一台水下无人机来探测鲸鱼数量,这是近十天的数据: 第1天第2天第3天第4天第5天第6天第7天第8天第9天第10天10101…

python学习DAY22打卡

作业: 自行学习参考如何使用kaggle平台,写下使用注意点,并对下述比赛提交代码 kaggle泰坦尼克号人员生还预测 import warnings warnings.filterwarnings("ignore") #忽略警告信息 # 数据处理清洗包 import pandas as pd import …

在 Ansys CFX Pre 中配置 RGP 表的分步指南

掌握在 Ansys CFX Pre 中设置 RGP 表的技巧,以优化仿真精度和效率。挑战在计算流体动力学 (CFD) 领域,RGP(真实气体属性)表对于准确模拟流体在不同条件下的行为至关重要。这些表格提供了详细的热力学属性&a…

C语言————原码 补码 反码 (日渐清晰版)

本文的内容通下面这篇文章有着紧密的联系,读者可以选择性阅读 C语言————二、八、十、十六进制的相互转换-CSDN博客 目录 基本概念 原码 反码 补码 转换 数据的存储方式 基本存储单位 数据的计算方式 补码的模运算原理 移位操作符 左移操作符 右移操…

函数-变量的作用域和生命周期

变量的作用域 引入问题 我们在函数设计的过程中,经常要考虑对于参数的设计,换句话说,我们需要考虑函数需要几个参数,需要什么类型的参数,但我们并没有考虑函数是否需要提供参数,如果说函数可以访问到已定义…

Ansible在配置管理中的应用

Ansible是一个开源的配置管理和应用程序部署工具,它使用YAML语言编写的Playbook来描述配置和应用部署过程。通过SSH协议与目标机器通信,Ansible可以实现批量操作,极大地提升了工作效率。核心功能Ansible的核心功能包括:配置管理&a…

【学习路线】Go语言云原生开发之路:从简洁语法到微服务架构

一、Go语言基础入门(1-2个月) (一)环境搭建与工具链Go环境安装 官方安装:从golang.org下载安装包版本管理:g、gvm等Go版本管理工具环境变量:GOROOT、GOPATH、GOPROXY配置Go Modules:…

软件工厂:推动新质生产力的组织跃迁

引言:软件工厂的建设,不在于工具多,而在于理解深;不在于上线快,而在于体系稳。不仅是“看得见的流水线”,更是“看不见的组织变革”。在新质生产力的时代命题下,软件工厂正成为连接创新与效率、…

9.0% 年增速驱动!全球自清洁滚轮拖布机器人市场2031年将迈向 946 百万美元

自清洁滚轮拖布机器人是重要的智能清洁设备,采用滚筒式拖布结构,集扫拖功能,通过高速旋转加压擦洗地面,深度除污。其活水清洁系统可实时自清洁、回收污水,避免二次污染,提升清洁效率与效果,带来…

新能源工厂的可视化碳中和实验:碳足迹追踪看板与能源调度策略仿真

摘要新能源工厂明明用着风电、光伏等清洁能源,碳排放数据却依旧居高不下?某锂电池厂耗费百万升级设备,碳足迹却难以精准追踪,能源调度全靠经验“拍脑袋”,导致成本飙升。而隔壁企业通过可视化碳中和实验,碳…

数据结构自学Day13 -- 快速排序--“非递归利用栈实现”

一、快速排序回顾 快速排序本质上是**“分而治之”(Divide and Conquer)策略的递归应用。但递归其实就是函数栈的一种体现,因此我们也可以显式使用栈(stack)来模拟递归过程**,从而实现非递归版本的快速排序…

前端数据库:IndexedDB 基础使用

前言 在现代 Web 开发中,随着应用程序复杂度的增加,对本地存储的需求也越来越高。虽然 localStorage 和 sessionStorage 可以满足一些简单的数据存储需求,但当需要存储大量结构化数据或进行复杂查询时,它们就显得力不从心了。这时…

Kubernetes深度解析:企业级容器编排平台的核心实践

引言:Kubernetes的战略地位与核心价值在云原生技术生态中,​​Kubernetes​​已成为容器编排的事实标准。根据2023年全球云原生调查报告:全球​​96%​​ 的组织正在使用或评估Kubernetes企业生产环境Kubernetes采用率增长​​400%​​&#…

Netty中future和promise用法和区别

定义与概念 Future:表示一个异步操作的结果。它是只读的,意味着你只能查看操作是否完成、是否成功、获取结果或者异常等信息,但不能主动设置操作的结果。Promise:是 Future 的可写扩展。它不仅可以像 Future 一样查看操作结果&…

微算法科技(NASDAQ:MLGO)采用分布式哈希表优化区块链索引结构,提高区块链检索效率

随着区块链技术的快速发展,其在各个领域的应用越来越广泛。然而,区块链数据的存储和检索效率问题一直是制约其发展的瓶颈之一。为了解决这一问题,微算法科技(NASDAQ:MLGO)采用了分布式哈希表(DHT)技术来优化…

Jmeter的元件使用介绍:(三)配置元件详解01

Jmeter的配置元件有非常多,常用的有:信息头管理器、Cookie管理器、用户定义的变量、Http请求默认值、JDBC Connection Configuration、CSV 数据文件设置、计数器等,本文会对这些常用的配置元件一一介绍,还有其他很多配置元件&…

git 连接GitHub仓库

一、安装 git 包在官网下载 git 包二、通过SSH密钥与GitHub远程仓库连接1. 检查本地 SSH 密钥是否存在ls -al ~/.ssh如果看到 id_rsa 和 id_rsa.pub,说明已有密钥。2.如果没有,生成新的 SSH 密钥:ssh-keygen -t ed25519 -C "your_email…