
1) 【一句话结论】系统高可用设计需通过多维度冗余(硬件、网络、服务)、负载均衡分散流量、主从复制保障数据一致性、集群部署实现服务容错,共同避免单点故障。
2) 【原理/概念讲解】
老师:咱们先讲核心概念,系统高可用本质是“冗余+容错”。
3) 【对比与适用场景】
| 技术 | 定义 | 核心特性 | 典型使用场景 | 注意点 |
|---|---|---|---|---|
| 负载均衡 | 分发网络请求到多个后端服务器 | 均衡流量、提高吞吐量、故障切换 | Web服务器、API网关 | 会话粘性配置、算法选择(轮询/加权) |
| 主从复制 | 主节点处理写,从节点同步数据 | 数据一致性、读写分离 | 数据库(MySQL、MongoDB)、缓存(Redis) | 同步延迟、主从切换成本 |
| 集群部署 | 多个服务实例部署在不同节点 | 服务冗余、故障转移 | 微服务架构、分布式系统 | 通信成本、状态同步、资源管理 |
4) 【示例】
upstream backend {
server 192.168.1.1:8080;
server 192.168.1.2:8080;
server 192.168.1.3:8080;
# round-robin 轮询
}
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://backend;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
# 主节点配置
[mysqld]
server_id=1
log_bin=/var/log/mysql/mysql-bin.log
binlog_format=row
# 从节点配置
[mysqld]
server_id=2
log_bin=/var/log/mysql/mysql-bin.log
replicate_host=192.168.1.1
replicate_user=repl
replicate_password=secret
replicate_port=3306
5) 【面试口播版答案】
面试官您好,关于系统高可用设计,核心思路是通过多维度冗余来避免单点故障。首先,负载均衡通过分发请求到多台服务器,避免单台过载,比如用Nginx轮询多个后端实例。其次,主从复制保障数据一致性,主节点写数据,从节点同步,比如MySQL主从架构,主节点故障时从节点切换。最后,集群部署通过多实例冗余,某个节点故障时其他实例接管,比如微服务架构中多个服务实例部署在不同机器。三者结合,从流量分发、数据同步、服务冗余三个层面提升高可用性。
6) 【追问清单】
7) 【常见坑/雷区】