面试宝典集锦

  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
相关推荐
C雨后彩虹2 小时前
无向图染色
java·数据结构·算法·华为·面试
鱼跃鹰飞2 小时前
Leetcode尊享面试100题:252. 会议室
算法·leetcode·面试
教游泳的程序员2 小时前
【面试问题精选】java开发工程师
python·面试·职场和发展
Baihai_IDP3 小时前
如何减少单智能体输出结果的不确定性?利用并行智能体的“集体智慧”
人工智能·面试·llm
Cosolar3 小时前
Java 后端访问 https接口报 SSLHandshakeException 你遇到过吗
java·后端·面试
阿蒙Amon3 小时前
C#每日面试题-简述匿名方法
java·面试·c#
丁一郎学编程3 小时前
面试的问题
面试·职场和发展
倔强的钧仔3 小时前
拒绝废话!前端开发中最常用的 10 个 ES6 特性(附极简代码)
前端·javascript·面试
0和1的舞者3 小时前
力扣hot100-链表专题-刷题笔记(一)
数据结构·链表·面试·刷题·知识