中间件测试 面试必背精华版(Redis+Kafka+RocketMQ+Nginx)
·
全是测试岗高频面试原题 + 标准答题话术,直接背就能用。
一、Redis 面试必背
1、Redis 为什么快?
- 单线程模型,无线程竞争切换开销
- 基于内存操作,读写速度远超磁盘
- IO 多路复用,高并发连接处理能力强
- 底层数据结构设计高效(跳表、哈希表)
2、Redis 持久化两种方式
- RDB:定时全量快照,恢复快、占资源低,可能丢最后一次快照后数据
- AOF:逐条记录写命令,实时性高、丢数据少,文件体积大、恢复慢
3、缓存三大问题 + 解决方案
- 缓存穿透:查不存在的数据一直打数据库解决:布隆过滤器、空值缓存、接口层校验
- 缓存击穿:热点 Key 过期瞬间大量请求打 DB解决:互斥锁、永不过期、热点 Key 后台续期
- 缓存雪崩:大量 Key 同时过期 / Redis 宕机解决:过期时间加随机值、集群高可用、服务熔断降级
4、Redis 淘汰策略
allkeys-lru、volatile-lru、allkeys-random、volatile-random、volatile-ttl、noeviction
5、Redis 集群模式
主从复制、哨兵 Sentinel、Cluster 集群;作用:高可用、读写分离、分片扩容。
二、Kafka 面试必背
1、核心概念
Broker、Topic、Partition、副本、生产者、消费者、消费组。同一消费组内,一个分区只能被一个消费者消费。
2、Partition 分区作用
- 提高并发,水平扩展
- 实现消息顺序性(同分区内有序)
- 负载均衡,分摊存储和消费压力
3、消息可靠性保证
生产者:acks=1 /all、重试机制服务端:副本同步、ISR 机制消费者:手动提交 offset,处理完再确认
4、消息丢失 / 重复 / 乱序怎么测试
- 丢消息:停 Broker、网络中断、重启节点校验消息完整性
- 重复消费:重启消费者、偏移量回退,看幂等是否生效
- 乱序:多分区默认无序,同分区保证有序
5、Kafka 高可用
分区多副本、ISR 同步、故障自动选举 Leader。
三、RocketMQ 面试必背
1、核心组件
NameServer(路由注册发现)、Broker、Producer、Consumer、Topic、MessageQueue。
2、相比 Kafka 优势
- 支持事务消息、延时消息、死信队列
- 运维更简单,适合金融业务
- 重试队列、广播 / 集群消费原生支持
3、消息类型
普通消息、延时消息、顺序消息、事务消息、批量消息。
4、测试重点
消息投递成功率、积压能力、重试机制、死信处理、集群故障切换、事务消息一致性。
四、Nginx 面试必背
1、作用
反向代理、负载均衡、静态资源缓存、限流、动静分离、SSL 证书。
2、负载均衡策略
轮询、加权轮询、IP 哈希、最少连接、url 哈希。
3、反向代理 vs 正向代理
- 正向代理:代理客户端(翻墙、内网访问外网)
- 反向代理:代理服务端(用户无感知,统一入口分发)
4、Nginx 测试要点
并发压力、限流阈值、转发正确性、故障节点自动摘除、配置重载不中断业务、SSL 兼容性。
五、中间件通用测试思路(面试万能话术)
- 功能测试:增删资源、收发数据、配置变更、权限校验
- 性能测试:TPS/QPS、响应时间、消息积压、内存 CPU 占用
- 高可用测试:节点宕机、网络断连、主从切换、重启恢复
- 异常测试:超时、重复请求、超大报文、并发冲突
- 一致性测试:缓存与 DB 一致、消息不丢不重、事务最终一致
更多推荐




所有评论(0)