面试宝典集锦

  1. Elasticsearch 集群三种状态含义Green(绿色):集群完全健康,所有主分片和副本分片均正常分配并可用。
    Yellow(黄色):所有主分片可用,但至少有一个副本分片未分配(常见于节点不足、磁盘水位高或扩容中)。功能正常,但存在单点故障风险。
    Red(红色):至少有一个主分片不可用,部分数据无法查询或索引,必须立即介入。

实战补充:

生产环境必须保持 Green。Yellow 常见于滚动重启或扩容,Red 通常是磁盘满、节点失联引起。排查命令:

_cat/shards?v、 _cat/allocation?v

  1. 块存储、对象存储、文件存储区别类型
    典型产品
    访问协议
    性能特点
    典型场景
    块存储
    云盘、EBS、本地磁盘
    iSCSI、FC
    高 IOPS、低延迟
    数据库、虚拟机系统盘、需要随机读写
    文件存储
    NFS、阿里云 CPFS、NAS
    NFS、CIFS/SMB
    目录结构、共享访问
    共享文件、开发环境、日志归档
    对象存储
    OSS、S3、COS
    HTTP/HTTPS REST API
    海量扩展、成本低
    图片、视频、备份、静态网站

核心区别:块存储性能最高像本地盘,文件存储有层次化目录,对象存储无目录、无限扩展、最经济。

  1. IPSec VPN 与 SSL VPN 区别项目

IPSec VPN

SSL VPN

OSI 层级

网络层(L3)

应用层(L7)

访问范围

全网访问(如内网一体)

精细化控制(具体应用/端口)

客户端

需专用客户端

通常浏览器即可(无客户端模式)

安全性

更高(IP 层加密)

灵活但依赖应用层加密

典型场景

Site-to-Site(分支互联)

远程办公、个人移动接入

选择建议:总部到分支用 IPSec,员工出差访问内网应用用 SSL。

  1. CPU 使用率不高,但 Load Average 高(例如 0.12, 0.18, 0.21)Load Average 表示 1/5/15 分钟内就绪队列平均进程数。CPU 低但负载高的常见原因:IO 等待高(进程卡在 D 状态,磁盘/网络慢)

大量上下文切换(短生命周期进程多)

锁竞争或内核瓶颈

排查流程:bash

top/htop # 查看 %wa(IO wait)

vmstat 1 # 查看 bi/bo、si/so

iostat -x 1 # 查看 %util

pidstat -d 1 # 查看具体进程 IO

dmesg | grep -i lock # 检查锁问题

  1. SNAT 与 DNATSNAT(Source NAT):修改源 IP,常用于内网服务器共享公网 IP 上网(后置 NAT)。
    DNAT(Destination NAT):修改目的 IP,常用于端口映射、负载均衡(公网请求转发内网,前置 NAT)。

阿里云 SLB 四层就是典型的 DNAT 实现。

  1. Kubernetes 网络插件对比:Flannel、Calico、Terway插件

网络模型

性能

网络策略支持

适用场景

Flannel

Overlay(VXLAN/HostGW)

中等

不支持

简单场景、对策略要求低

Calico

BGP + IPIP/VXLAN

丰富

需要网络隔离、安全策略

Terway

阿里云 ENI 直通

最高

支持

阿里云 ACK、高性能需求

推荐顺序(阿里云环境):Terway > Calico > Flannel

  1. 中间件常见监控指标中间件

关键指标

Nginx

活跃连接、QPS、5xx 比例、upstream 响应时间

Redis

内存使用、命中率、evicted_keys、慢查询

MySQL

QPS/TPS、慢查询比例、buffer pool 命中率、线程状态

Kafka

lag、消息堆积、broker IO、网络吞吐

JVM

GC 频率/时长、堆内存、线程数、Full GC

建议:Prometheus + Grafana 统一监控,设置分级告警。

  1. MongoDB 优化、集群、分片、副本集副本集:高可用,主从异步复制,自动故障转移。

分片:水平扩展,数据分布到多个 shard。

优化要点:选择高基数、均匀分布的 shard key

使用覆盖索引

控制文档大小,定期 compact

合理配置连接池

WiredTiger 引擎启用压缩

  1. Kubernetes 无感发布与滚动更新滚动更新:默认策略,逐步替换 Pod(maxSurge/maxUnavailable 控制)。

    无感发布方式:蓝绿部署(切换 Service 指向新版本)

    金丝雀发布(Ingress/ALB 流量权重分流)

    服务网格(Istio)实现高级灰度

  2. MySQL MHA 高可用及故障案例MHA:主库故障时自动提升从库、修复其他从库 GTID。优点:无需 VIP,切换快(10-30s)

    缺点:已停止维护,推荐迁移到 MGR典型故障案例:主库宕机 → MHA 检测 → 选最新从库提升 → 修复其余从库 → 应用切换数据源。

  3. Pod 构建过程kubectl 创建资源 → API Server 写入 etcd

    Scheduler 绑定 Node

    Kubelet 监听到 → 调用 CRI 创建容器

    CNI 分配网络

    CSI 挂载存储

    容器启动 → 探针检测 → Endpoint 更新

  4. Linux 系统初始化优化关闭 SELinux 或设为 permissive

    提高文件描述符:ulimit -n 1048576

    内核参数:net.core.somaxconn=102400、fs.file-max=1048576、vm.swappiness=10

    禁用透明大页:transparent_hugepage=never

    时间同步:chronyd

    安全基线:防火墙最小化、禁用 root 远程登录

  5. Nginx 优化:跨域、隐藏版本、性能参数跨域配置:nginx

bash 复制代码
add_header Access-Control-Allow-Origin $http_origin;
add_header Access-Control-Allow-Credentials true;
add_header Access-Control-Allow-Methods "GET,POST,OPTIONS";
add_header Access-Control-Allow-Headers "*";
if ($request_method = OPTIONS) {
    return 204;
}
bash 复制代码
隐藏版本:server_tokens off;性能优化:nginx

```bash
worker_processes auto;
gzip on;
sendfile on;
keepalive_timeout 65;
client_max_body_size 100m;
复制代码
14. L4 与 L7 负载均衡、OSI 七层、三次握手、四次挥手L4:传输层(IP+端口),性能高,支持 TCP/UDP
L7:应用层(内容路由、HTTPS 终止)

OSI 七层:物理 → 数据链路 → 网络 → 传输 → 会话 → 表示 → 应用三次握手:SYN → SYN-ACK → ACK
四次挥手:FIN → ACK → FIN → ACK(多一次确保半关闭状态数据传输完毕)
15. Linux 三剑客(grep/sed/awk)日志分析常用命令bash

```bash
# 实时查看错误日志
tail -f app.log | grep --color "ERROR\|Exception"

# 统计访问 IP 前10
awk '{print $1}' access.log | sort | uniq -c | sort -nr | head -10

# 最近一天登录失败统计
journalctl --since "yesterday" | grep "Failed" | awk '{print $11}' | sort | uniq -c | sort -nr
  1. CDN 与 WAF 区别及部署顺序CDN:内容分发网络,加速静态资源、缓存边缘节点。
    WAF:Web 应用防火墙,防御 SQL 注入、XSS、CC 等。

部署顺序:流量 → CDN → WAF → 源站(阿里云推荐此顺序,更好防御 CC 攻击)。

  1. MySQL 与 Oracle 参数优化、高可用、备份MySQL:高可用:MGR(推荐)/ MHA
    备份:xtrabackup(物理热备、支持增量)
    关键参数:innodb_buffer_pool_size(70-80% 内存)、innodb_log_file_size、sync_binlog=1

Oracle:高可用:RAC + DataGuard

备份:RMAN(增量、归档)

关键参数:sga_target、pga_aggregate_target

  1. Kubernetes 核心知识点核心组件:apiserver、etcd、scheduler、controller-manager、kubelet、kube-proxy、CoreDNS
    监控:Prometheus Operator + Grafana
    日志:EFK 或 Loki
    存储:Local PV、NFS、CSI(云盘/NAS)
    服务发现:Service + CoreDNS
    负载均衡:CLB(L4)→ ALB(L7)→ Ingress
相关推荐
奔跑的蜗牛ing8 小时前
CentOS Nginx 安装与静态文件服务器配置指南
前端·面试·架构
KaifuZeng11 小时前
通信与接口协议面试五、RS422
嵌入式硬件·面试·通信与接口
Frostnova丶12 小时前
(12)LeetCode 76. 最小覆盖子串
算法·leetcode·职场和发展
旧曲重听112 小时前
为什么现在 RAG 越少越少提及了
数据库·程序人生·职场和发展·agent
SamDeepThinking13 小时前
组合还是继承?我在项目里主要看这两个判断
java·后端·面试
wear工程师13 小时前
setState 到底是不是异步的?这题从 React 16 问到 18,标准答案早就变了
react.js·面试
凯瑟琳.奥古斯特13 小时前
力扣1013三等分解法与C++实现
开发语言·c++·算法·leetcode·职场和发展
凯瑟琳.奥古斯特15 小时前
力扣1012数位DP解法详解
开发语言·c++·算法·leetcode·职场和发展
SamDeepThinking16 小时前
为什么很多人学了Java,还是没真正理解类和对象?
java·后端·面试
阿新聊ai16 小时前
Claude Code 为什么总不懂你的项目?缺一张「项目地图」
前端·后端·面试