楼层: 首页/ 软件技术/ 中间件全景/ 面试高频 30 题
12

面试高频 30 题

30 Must-Know Interview Questions

中间件面试就考这些,点开展开看答案。覆盖 Nginx/Kafka/Redis/RabbitMQ/分布式事务/ELK/Zabbix。

中间件面试 30 题(点开展开答案)

1. Nginx 为什么高并发性能好?

查看答案

事件驱动+非阻塞 I/O(epoll),一个 worker 同时处理几千连接;sendfile 零拷贝;异步非阻塞。

2. Nginx location 匹配优先级?

查看答案

= 精确 > ^~ 前缀 > ~/~* 正则 > 普通前缀 > / 兜底。

3. Nginx 负载均衡策略有哪些?

查看答案

轮询(默认)、加权轮询、ip_hash(会话粘滞)、least_conn(最少连接)。

4. Nginx 反向代理为什么要 proxy_set_header?

查看答案

不传的话后端拿到的 RemoteAddr 是 Nginx 的 IP,日志统计和限流都废。三件套:Host、X-Real-IP、X-Forwarded-For。

5. Kafka 为什么这么快?

查看答案

顺序写磁盘(比随机写快100倍)、零拷贝 sendfile、批量发送、分区并行、页缓存。

6. Kafka 怎么保证消息不丢?

查看答案

生产者 acks=all + retries;Broker 副本因子>=2 + min.insync.replicas=2;消费者手动提交 offset。

7. Kafka 怎么保证消息顺序?

查看答案

同一 key 哈希到同一 Partition,Partition 内有序。全局有序只能单 Partition。

8. Kafka 的 ISR 是什么?

查看答案

In-Sync Replicas,和 Leader 保持同步的副本集合。Leader 挂了从 ISR 里选新 Leader。

9. Kafka 的消费者重平衡(rebalance)是什么?

查看答案

消费者组内成员变化(新增/宕机)或 Partition 数变化时,重新分配 Partition 给消费者。期间消费暂停。

10. RabbitMQ 和 Kafka 怎么选?

查看答案

高吞吐/日志/大数据管道选 Kafka;企业可靠消息/复杂路由/低延迟选 RabbitMQ。

11. RabbitMQ 的 Exchange 类型?

查看答案

Direct(直连)、Fanout(广播)、Topic(模式匹配)、Headers(头匹配)。

12. RabbitMQ 延迟队列怎么实现?

查看答案

TTL + 死信队列(DLX):消息进无人消费的队列,TTL 到了变死信,路由到真正处理的队列。

13. Redis 为什么快?

查看答案

纯内存操作;单线程避免上下文切换;IO 多路复用 epoll;高效数据结构(跳表/压缩列表)。

14. Redis 缓存穿透/击穿/雪崩?

查看答案

穿透=查不存在→布隆过滤器;击穿=热点key过期→互斥锁/永不过期;雪崩=大量key同时过期→随机TTL+集群+熔断。

15. Redis 分布式锁怎么实现?

查看答案

SET key value NX PX 过期时间,value 设 UUID,释放用 Lua 脚本先比较再删。生产用 Redisson(自动续期)。

16. Redis 持久化 RDB vs AOF?

查看答案

RDB 快照恢复快但可能丢数据;AOF 日志数据安全但恢复慢。生产用混合模式(RDB+AOF)。

17. Redis 主从复制原理?

查看答案

全量同步(bgsave RDB 文件传输)+ 增量同步(复制积压缓冲区)。主写从同步。

18. Redis Sentinel 干什么?

查看答案

监控主从,主挂了自动选新主并通知客户端。三个 Sentinel 节点投票,quorum 法定人数。

19. Redis Cluster 哈希槽?

查看答案

16384 个槽,CRC16(key) % 16384 算槽,槽分布到各节点。MOVED 重定向到正确节点。

20. CAP 定理实际怎么选?

查看答案

P 必保,CP(ZooKeeper)或 AP(Eureka/Nacos)。互联网系统选 AP + 最终一致。

21. 2PC 的问题?

查看答案

同步阻塞、协调者单点故障、Commit 阶段可能数据不一致。

22. TCC 三问是什么?

查看答案

空回滚(Try没到Cancel到了)、幂等(Confirm/Cancel可能重复)、悬挂(Cancel先到Try后到)。

23. Seata AT 模式原理?

查看答案

一阶段直接提交本地事务+记录 undo log;二阶段成功删 undo log,失败用 undo log 生成反向 SQL 回滚。

24. Tomcat 调优要点?

查看答案

JVM:Xms=Xmx、G1GC;连接器:maxThreads、acceptCount;关 enableLookups;开 compression。

25. Tomcat 集群 Session 怎么共享?

查看答案

Nginx + ip_hash 会话粘滞(简单但单点风险);或 Session 放 Redis 共享(推荐)。

26. ES 为什么搜得快?

查看答案

倒排索引(词→文档列表),分片并行,近实时刷新。

27. ELK 架构是什么?

查看答案

Filebeat 采集 → Logstash 过滤解析 → Elasticsearch 存储搜索 → Kibana 可视化。

28. Zabbix 核心概念?

查看答案

Host/Item/Trigger/Action/Template。监控项定义查什么,触发器定义告警阈值,动作定义告警方式。

29. Prometheus 和 Zabbix 区别?

查看答案

Zabbix 推模型+MySQL存储;Prometheus 拉模型+自带时序库+PromQL+K8s 自动发现。

30. TLS 握手过程?

查看答案

Client Hello → Server Hello+证书 → 验证证书+密钥交换 → Finished 加密通信。TLS 1.3 只要 1 RTT。