分布式系统考察重点

发布时间:2026/9/20 2:05:39

分布式系统考察重点 模块1Redis一、Redis缓存穿透、击穿、雪崩分别是什么怎么解决1. 缓存穿透查询不存在的数据绕过缓存直接打穿到DB比如恶意查id-1解决布隆过滤器拦截不存在key、缓存空值并设置短过期时间、参数合法性校验。2. 缓存击穿热点key过期瞬间大量并发请求打到数据库解决互斥锁抢占重建缓存、热点key永不过期、过期时间随机打散。3. 缓存雪崩大量key同一时间集体过期流量全部压垮DB解决过期时间随机加偏移量、Redis集群高可用、多级缓存、服务限流熔断。2. Redisson分布式锁为什么要实现可重入底层怎么实现可重入- 可重入意义同一个线程内多次加锁不会死锁比如A方法加锁后调用内部B方法B方法再次加锁可以正常执行。- 底层实现Redis的Hash结构key锁名称field线程唯一标识value重入次数加锁线程不存在则设置次数为1已存在则次数1解锁次数-1减到0才删除锁。3. Redisson看门狗机制是如何实现的作用是什么- 作用防止业务执行时间超过锁过期时间锁提前释放导致并发安全问题自动给锁续期。- 实现原理获取锁成功后开启一个后台定时任务默认每隔 lock过期时间/3 默认30s锁10s执行一次给锁重置过期时长只有未手动解锁、线程正常持有锁时才会续期锁释放后定时任务停止。4. Redis持久化RDB和AOF区别生产环境怎么选型RDB二进制快照体积小恢复快会丢失最后一次快照后的数据AOF日志追加形式数据安全性高文件体积大恢复慢生产一般混合使用AOF保证数据不丢失RDB用于快速冷启动恢复。模块2分布式锁1. 原生setnx分布式锁存在什么缺陷Redisson做了哪些优化原生缺陷不可重入、锁超时无法自动续期、宕机死锁、非原子解锁容易误删别人锁Redisson优化可重入Hash结构、看门狗续期、Lua脚本保证加解锁原子性、支持公平锁/读写锁、锁超时自动释放。2. Redis分布式锁如何保证主从切换时锁不丢失Redis主从异步复制主节点加锁成功后宕机从节点还未同步锁数据新主节点无锁会出现并发问题解决方案使用RedLock红锁算法、等待从节点同步完成WAIT指令、优先ZooKeeper实现强一致性锁。模块3RocketMQ一、RocketMQ事务消息底层执行流程半消息机制1. 生产者发送半消息Half Message到MQ消息对消费者不可见2. MQ确认收到半消息后回调生产者执行本地事务3. 本地事务成功提交消息消费者可见失败则回滚删除消息4. 长时间无状态响应MQ开启定时回查任务回调生产者查询本地事务状态兜底决策提交/回滚。二、 RocketMQ如何保证消息不丢失、不重复消费消息丢失分层解决生产者确认机制、Broker刷盘策略、消费者手动ACK重复消费规避业务侧实现幂等性唯一索引、Redis幂等标记、状态机判断。三、 顺序消息实现原理全局顺序和局部顺序区别原理指定相同MessageQueue消息发送到同一个队列消费者单线程消费保证顺序全局顺序整个Topic单队列性能极低局部顺序业务分区订单id哈希分到同一个队列兼顾顺序与性能。模块4Java并发 JDK21虚拟线程一、Synchronized锁升级机制是什么无锁→偏向锁→轻量级自旋锁→重量级锁JDK1.6之后自适应自旋优化降低内核态切换开销。二、 为什么Synchronized会阻塞虚拟线程有什么替代方案Synchronized是基于操作系统内核的阻塞锁虚拟线程被它阻塞时载体线程会被占用无法复用丧失虚拟线程轻量调度优势替代方案使用JUC的ReentrantLock、读写锁虚拟线程阻塞时可以释放载体线程。三、 虚拟线程和传统平台线程核心区别1. 传统线程是操作系统内核线程创建销毁开销大数量受系统限制虚拟线程是JVM用户态轻量级线程开销极低可海量创建2. 传统线程池池化复用管控数量虚拟线程无需池化由JVM自动调度3. 平台线程阻塞会占用载体资源虚拟线程阻塞时可以挂载释放载体线程。四、线程池七大核心参数、四种拒绝策略分别是什么参数核心线程数、最大线程数、空闲存活时间、阻塞队列、拒绝策略、线程工厂、预启动策略拒绝策略Abort丢弃抛异常、Discard丢弃队首、DiscardOldest丢弃队尾、CallerRuns让调用者线程执行。模块5MySQL基础原理1. MySQL分页越往后越慢深分页底层原因limit offset,sizeoffset很大时MySQL需要遍历offset行数据再丢弃回表开销极大优化主键分页回溯、覆盖索引、业务限制分页上限、ES替代大分页查询。2. UUID作为主键相比自增id有什么问题UUID无序会导致主键索引页分裂、磁盘碎片多插入性能差占用索引空间更大优化有序UUIDUUID v7、雪花算法、业务分段有序id。3. InnoDB事务四大隔离级别分别解决什么问题读未提交、读已提交解决脏读、可重复读MySQL默认解决不可重复读、串行化解决幻读MVCC多版本并发控制实现RC、RR隔离级别。
延伸阅读

更多相关文章

2026/9/19 20:37:07

【前端手撕】call

call是改变this指向的方法,传入的参数是要指向的对象和函数需要的参数序列。改变this指向还可以用apply和bind,区别如下:方法传参方式执行时机返回值call参数序列(逐个传入)立即执行函数执行的结果apply参数数组&#…

2026/9/18 9:14:13

SVN 分支管理最佳实践 SVN 与 Git 命令对照表

第一部分:SVN 分支管理最佳实践一、标准目录结构(约定优于配置)SVN 本身不强制目录结构,但业界公认的标准布局是 trunk / branches / tags 三件套:repository/ ├── trunk/ # 主干:主…

2026/9/19 8:58:05

NXP ZigBee PRO协议栈实战:栈事件处理与高级配置优化指南

1. 项目概述与核心价值如果你正在基于NXP的JN516x系列芯片开发ZigBee产品,比如智能家居的传感器、开关或者工业物联网的采集终端,那么你肯定绕不开对ZigBee PRO协议栈的深度定制和优化。官方文档虽然详尽,但往往侧重于功能罗列,缺…

2026/9/20 19:16:42

BrewUI自酿监控指南:从传感器到浏览器的发酵温度控制详解

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/20 19:16:42

OpenClaw本地部署实战:从WSL2环境到微信接入全攻略

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/20 19:16:42

Linux网络编程从入门到进阶:socket、HTTP与epoll实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/20 19:16:42

ACM竞赛全解析:赛制、含金量与入门路线

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/20 19:16:42

GD32H759 RT-Thread enet驱动移植实战与常见问题排查

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/20 19:11:40

C盘爆红不用愁:hiberfil.sys休眠文件删除与压缩全攻略

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/20 0:04:49

GAMP 5 基于风险的计算机化系统验证:软件分类与审计追踪实践

简介:《A Risk-Based Approach to Compliant GxP Computerized Systems》即业内熟知的GAMP 5指南,面向制药企业质量与IT合规人员、验证工程师及计算机化系统管理者,用于解决GxP法规环境下系统合规性难以科学落地的问题。文档以风险管理为主线…

2026/9/20 0:04:49

安全托管MSSP实战:从静态防御到人机协同的攻防运营与应急响应

简介:这份PPT围绕互联网业务安全托管服务展开,面向企业安全负责人、IT运维人员及关注MSSP/MSS选型的读者,重点回应传统安全过度依赖人工、碎片化静态防御难以对抗产业化攻击等痛点。资源共1个pptx文件,包体约30.63MB,以…

2026/9/20 0:04:49

GAMP 5 基于风险的计算机化系统验证:软件分类与审计追踪实践

简介:《A Risk-Based Approach to Compliant GxP Computerized Systems》即业内熟知的GAMP 5指南,面向制药企业质量与IT合规人员、验证工程师及计算机化系统管理者,用于解决GxP法规环境下系统合规性难以科学落地的问题。文档以风险管理为主线…

2026/9/20 0:04:49

安全托管MSSP实战:从静态防御到人机协同的攻防运营与应急响应

简介:这份PPT围绕互联网业务安全托管服务展开,面向企业安全负责人、IT运维人员及关注MSSP/MSS选型的读者,重点回应传统安全过度依赖人工、碎片化静态防御难以对抗产业化攻击等痛点。资源共1个pptx文件,包体约30.63MB,以…

2026/9/20 4:54:47

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/20 5:01:23

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/20 5:09:33

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码