DevOps 面试题大全(十·上):系统架构设计 25 题详解

前言

系统架构设计是 DevOps 工程师的高级技能,需要理解分布式系统、高可用、可扩展性等核心概念。本文整理 50 道架构面试题。

一、基础概念题(1-15 题)

1. 什么是系统架构?

系统的组织结构,包括组件、关系、原则和指导方针,决定系统如何工作。

2. CAP 定理

  • Consistency - 一致性
  • Availability - 可用性
  • Partition Tolerance - 分区容错性
  • 三者最多取其二

3. BASE 理论

  • Basically Available - 基本可用
  • Soft state - 软状态
  • Eventually consistent - 最终一致性

4. 负载均衡算法

  • Round Robin - 轮询
  • Least Connections - 最少连接
  • IP Hash - IP 哈希
  • Weighted - 加权
  • 一致性哈希

5. 缓存策略

  • Cache-Aside - 旁路缓存
  • Read-Through - 读取穿透
  • Write-Through - 写入穿透
  • Write-Behind - 异步写入

6. 数据库复制模式

  • 主从复制(Master-Slave)
  • 主主复制(Master-Master)
  • 半同步复制
  • 多主复制

7. 分片策略

  • 水平分片(按行)
  • 垂直分片(按列)
  • 范围分片
  • 哈希分片
  • 地理分片

8. 消息队列作用

  • 异步处理
  • 解耦服务
  • 流量削峰
  • 顺序保证

9. 常见消息队列

  • Kafka - 高吞吐日志
  • RabbitMQ - 企业级消息
  • Redis Streams - 轻量级
  • Pulsar - 云原生
  • SQS - AWS 托管

10. 微服务架构特点

  • 服务拆分
  • 独立部署
  • 技术多样性
  • 去中心化治理
  • 容错隔离

11-15. 更多基础题

题号 题目 要点
11 什么是 CQRS? 命令查询职责分离
12 事件溯源是什么? 状态变更存事件
13 什么是 Saga 模式? 分布式事务管理
14 API Gateway 作用? 统一入口,路由聚合
15 什么是服务网格? 基础设施层服务通信

二、进阶实战题(16-25 题)

16. 高可用架构设计

  • 多可用区部署
  • 自动故障转移
  • 健康检查
  • 冗余设计
  • 备份恢复

17. 可扩展性策略

  • 水平扩展(加机器)
  • 垂直扩展(加资源)
  • 读写分离
  • 缓存层
  • CDN 加速

18. 数据库选型原则

  • 关系型:MySQL/PostgreSQL(事务)
  • 文档型:MongoDB(灵活 schema)
  • 键值型:Redis(缓存)
  • 列族:Cassandra(写多)
  • 图数据库:Neo4j(关系)

19. 缓存架构

# 多层缓存
Client → CDN → LB → App → Redis → DB

# 缓存穿透解决
- 布隆过滤器
- 缓存空值

# 缓存雪崩解决
- 随机过期时间
- 高可用集群

# 缓存击穿解决
- 互斥锁
- 永不过期

20. 分布式 ID 生成

  • UUID - 简单但无序
  • 数据库自增 - 性能瓶颈
  • Redis INCR - 高性能
  • Snowflake - 分布式唯一
  • Leaf - 美团方案

21. 限流算法

  • 固定窗口
  • 滑动窗口
  • 令牌桶
  • 漏桶
  • 自适应限流

22. 熔断降级

  • Hystrix - Netflix
  • Resilience4j - 轻量级
  • Sentinel - 阿里
  • 状态:关闭/打开/半开

23. 分布式事务方案

  • 2PC - 两阶段提交
  • 3PC - 三阶段提交
  • TCC - Try/Confirm/Cancel
  • Saga - 长事务
  • 本地消息表
  • 最大努力通知

24. 数据一致性级别

  • 强一致性
  • 弱一致性
  • 最终一致性
  • 因果一致性
  • 会话一致性

25. 监控架构设计

  • 指标收集(Prometheus)
  • 日志聚合(ELK)
  • 链路追踪(Jaeger)
  • 告警通知(Alertmanager)
  • 可视化(Grafana)

下篇预告:26-50 题,涵盖云架构、故障排查、最佳实践等

发表回复

后才能评论