期末复习知识大纲
基于官方《云计算技术课程复习大纲》整理,覆盖 12 次课全部考点。SCAI004712 · 2学分32学时。⭐ 为重点章节,可点击跳转对应讲义深入。
📌使用说明
本页按12 次课组织,每次课列出必须掌握的知识点。复习建议:先通览考点→对⭐重点跳转讲义深入→用底部题库自测。
课程信息:SCAI004712 · 计算机科学与技术/软件工程 · 大三 · 2学分/32学时(16次课×2学时)。
1云计算概论 ⭐ → 讲义
- 大数据:定义;4V+1C 特征(Volume 数据量大 / Velocity 快速 / Variety 多样 / Value 价值密度低 / Complexity 复杂度高)⭐。
- 云计算定义与本质:NIST 定义 ⭐;五大本质特征(按需自服务、弹性扩展、资源池化、网络访问、按量计费)⭐;数据中心选址(电力与制冷成本)。
- 服务模式:IaaS / PaaS / SaaS(房屋类比、控制等级、典型产品)⭐;三种交付模型对比;新兴 FaaS / CaaS。
- 部署模式:公有云、社区云、私有云、混合云(优缺点与适用场景)⭐。
- 核心技术栈:计算(虚拟化/容器)、存储(分布式/对象)、网络(SDN/负载均衡)。
服务模式对比:
| 模式 | 提供 | 用户管理 | 典型产品 |
|---|---|---|---|
| IaaS | VM/存储/网络 | OS+中间件+应用 | AWS EC2/阿里云ECS |
| PaaS | 运行环境/数据库 | 应用+数据 | Heroku/GAE/云数据库 |
| SaaS | 完整软件 | 仅使用 | Google Docs/Office365 |
部署模式对比:
| 模式 | 所有者 | 优势 | 劣势 |
|---|---|---|---|
| 公有云 | 第三方运营 | 弹性/低成本 | 数据安全顾虑 |
| 私有云 | 企业自建 | 安全可控 | 成本高/弹性差 |
| 混合云 | 混合 | 兼顾安全与弹性 | 架构复杂 |
| 社区云 | 同类组织共享 | 成本分摊 | 规模有限 |
高频问法:IaaS/PaaS/SaaS 举例区分 → 虚拟机(IaaS)、云数据库(PaaS)、在线文档(SaaS)。大数据与云计算的关系 → 云计算是处理大数据的手段,大数据是云计算的典型应用。
2虚拟化技术与Docker ⭐ → 讲义
- 虚拟化基础:定义与优势。虚拟化=把物理资源抽象成多个逻辑资源,优势是资源隔离、提高利用率、便于迁移和快照。
- 虚拟化原理:软件虚拟化 vs 硬件虚拟化(VMM 截获翻译 vs VT-x/AMD-v)⭐;Hypervisor/VMM 职责;寄居架构 vs 裸机架构;CPU 虚拟化(指令分级、VT-x 根/非根模式);内存虚拟化(影子页表 SPT、扩展页表 EPT)⭐。
- 容器化动机:虚拟化的局限性 → 容器化。VM 启动慢、资源开销大(每个VM带完整OS),容器共享宿主内核、秒级启动、占用小,解决轻量级隔离需求。
- 容器 vs 虚拟机 ⭐:OS 依赖、启动速度、空间、性能、隔离级别(VM 强隔离重,容器共享内核轻)。
- Docker 架构:Client / Daemon / Registry。
- Linux 内核基石 ⭐:Namespace(进程隔离)+ Cgroup(资源限制)。
- 镜像与容器:分层结构、联合文件系统(UnionFS)。
VM vs 容器详细对比:
| 维度 | 虚拟机(VM) | 容器(Container) |
|---|---|---|
| 隔离层 | Hypervisor + 完整Guest OS | 共享宿主OS内核 |
| 启动时间 | 分钟级 | 秒级/毫秒级 |
| 镜像大小 | GB级 | MB级 |
| 性能 | 有虚拟化开销(~5-10%) | 接近原生 |
| 隔离性 | 强(硬件级) | 弱(进程级) |
| 密度 | 单机十几个 | 单机数百个 |
| 内核技术 | VT-x / EPT | Namespace + Cgroup |
Hypervisor两类架构:
| 类型 | 位置 | 特点 | 典型产品 |
|---|---|---|---|
| Type-1(裸机) | 直接运行在硬件上 | 性能好/开销小 | VMware ESXi / Xen / KVM |
| Type-2(寄居) | 运行在宿主OS上 | 安装方便/性能略差 | VirtualBox / VMware Workstation |
高频问法:容器为什么比VM快 → 不需要启动完整OS,共享宿主内核。EPT vs SPT → EPT硬件两级页表,自动翻译无需VMM介入,性能优于SPT(软件维护影子页表)。
3云原生基础与微服务 ⭐ → 讲义
- 云原生概念:CNCF 定义与四大核心要素 ⭐(容器化、微服务、声明式 API、不可变基础设施);云原生 vs 传统开发;不可变基础设施。
- 微服务核心特征 ⭐:单一职责、独立部署、技术异构、去中心化数据。
- 服务拆分策略:DDD 限界上下文、数据边界、变更频率。
- 通信方式:同步(REST、gRPC)与异步(消息队列)。
- 服务发现与注册:客户端发现 vs 服务端发现;etcd / Consul / ZooKeeper / Nacos。
- 负载均衡:策略与 L4/L7 层次。L4(传输层,按IP/端口转发,如Nginx TCP)、L7(应用层,按HTTP内容路由,如Ingress)。策略:轮询/最少连接/IP哈希。
- 容错设计 ⭐:熔断器三态(Closed / Open / Half-Open)、限流、降级。
- API 网关。微服务统一入口,负责请求路由、认证鉴权、限流熔断、协议转换、日志监控,屏蔽内部服务复杂性。
- Docker Compose:services/networks/volumes/configs/secrets;服务发现。
单体 vs 微服务:
| 维度 | 单体架构 | 微服务架构 |
|---|---|---|
| 部署 | 整体打包部署 | 服务独立部署 |
| 扩展 | 整体水平扩展 | 按需独立扩展 |
| 技术栈 | 统一 | 可异构(每服务选最优) |
| 数据 | 共享数据库 | 去中心化(每服务独立数据) |
| 复杂度 | 代码内部耦合 | 分布式通信复杂 |
| 容错 | 单点故障影响全局 | 服务隔离,局部故障 |
熔断器三态流转:Closed(正常) →失败率超阈值→ Open(熔断,快速失败) →超时窗口到期→ Half-Open(放行少量探测) →成功→ Closed / →失败→ Open。
高频问法:服务发现两种模式 → 客户端发现(客户端查注册中心选实例,如Eureka) vs 服务端发现(通过负载均衡器路由,如K8s Service)。API网关的职责 → 请求路由/认证鉴权/限流熔断/协议转换/日志监控。
4Kubernetes基础 ⭐ → 讲义
- K8s 架构 ⭐:Master-Worker 模型。Master(kube-apiserver、etcd、controller-manager、scheduler);Worker(kubelet、kube-proxy、Container Runtime)。
- 声明式 API:YAML 四大字段(apiVersion、kind、metadata、spec)⭐;Namespace 逻辑隔离。
- Pod ⭐:最小调度单元;共享机制(网络、存储);资源配额(requests/limits);生命周期与 Init Containers;探针(Liveness、Readiness、Startup);QoS 等级(Guaranteed/Burstable/BestEffort)。
- Service ⭐:Labels & Selectors;三种类型(ClusterIP、NodePort、LoadBalancer);DNS(CoreDNS);Ingress 七层路由。
- Deployment ⭐:维持副本数、滚动更新(maxSurge/maxUnavailable)、版本回滚;Deployment→ReplicaSet→Pod 三层;HPA 水平自动扩缩容。
- kubectl 常用命令。kubectl get/describe/apply/delete/logs/exec/scale/rollout,是K8s管理入口。
5K8s深入与服务网格 ⭐ → 讲义
- 调度 ⭐:Requests & Limits;调度器(预选 Filtering / 优选 Scoring);节点亲和性、Pod 亲和性/反亲和性;污点与容忍(Taints & Tolerations,三种 Effect);ResourceQuota 与 LimitRange。
- StatefulSet ⭐:vs Deployment(稳定标识、独立存储、有序启停);Headless Service;VolumeClaimTemplates。
- ConfigMap 与 Secret:ConfigMap 非敏感配置(环境变量/卷挂载/热更新);Secret 敏感信息(Base64、tmpfs、类型)。
- 持久化存储 ⭐:三层架构(PV / PVC / StorageClass);访问模式(RWO/ROX/RWX)与回收策略(Retain/Delete);静态 vs 动态供给。
- Service Mesh 与 Istio ⭐:通信逻辑下沉、语言无关;Istio 架构(控制面 istiod / 数据面 Envoy);Sidecar 代理(Envoy 自动注入);流量管理(VirtualService、DestinationRule);安全 mTLS;金丝雀发布(Canary Release)。
6消息队列与事件驱动 ⭐ → 讲义
- 消息队列作用 ⭐:异步解耦、流量削峰、最终一致性。
- 消息模型:点对点(Queue)与发布/订阅(Topic)⭐。
- 投递语义 ⭐:At Most Once、At Least Once、Exactly Once 与幂等性。
- 消息顺序性:单分区/单队列有序,顺序性与并行性权衡。
- Kafka ⭐:架构(Broker、Topic、Partition、Consumer Group);Partition 与追加写、Offset;流处理 vs 批处理。
- RabbitMQ ⭐:AMQP 协议;核心概念(Exchange、Queue、Binding、Routing Key);三种 Exchange(Direct、Fanout、Topic);ACK 与持久化;死信队列(DLQ)与延迟消息。
Kafka vs RabbitMQ:
| 维度 | Kafka | RabbitMQ |
|---|---|---|
| 协议 | 自定义二进制协议 | AMQP |
| 模型 | 发布/订阅(Pull拉取) | 队列+Exchange(Push推送) |
| 吞吐量 | 极高(百万/秒) | 中等(万级/秒) |
| 消息持久化 | 磁盘追加写,保留时间可配 | ACK后可删除 |
| 顺序性 | 分区内有序 | 单队列有序 |
| 消费方式 | Consumer Group+Offset | 轮询分发给消费者 |
| 适用场景 | 日志收集/流处理/大数据 | 业务解耦/任务队列/RPC |
投递语义对比:
| 语义 | 含义 | 实现 | 风险 |
|---|---|---|---|
| At Most Once | 最多一次 | 不重试 | 可能丢消息 |
| At Least Once | 至少一次 | 重试+ACK | 可能重复 |
| Exactly Once | 恰好一次 | 幂等+事务 | 实现复杂/性能低 |
高频问法:Kafka为什么吞吐量高 → 追加写磁盘(顺序IO)+零拷贝+分区并行。死信队列(DLQ)作用 → 收集无法正常消费的消息,防止消息丢失,便于后续排查处理。
7分布式存储系统 ⭐ → 讲义
- CAP 定理 ⭐⭐:一致性(C)、可用性(A)、分区容忍性(P)三者权衡,分布式系统只能满足其二(通常保 CP 或 AP)。
- BASE 理论 ⭐:基本可用、软状态、最终一致性(CAP 的 AP 实践)。
- 数据分片 ⭐:哈希分片(一致性哈希、虚拟节点);范围分片。
- 数据复制:向量时钟。分布式系统中追踪事件先后顺序,解决数据冲突(并发写冲突可用向量时钟判断因果关系)。
- 列族存储:三种代表性系统与适用场景。HBase(大表宽表)/Cassandra(高可用写)/Bigtable(Google原始)。适用高吞吐写入、稀疏数据。
- NewSQL:定义;代表产品(Spanner、TiDB)。
CAP 三选二:
注意:分布式系统P必须保,实际只在CP和AP间选择。
| 选择 | 牺牲 | 典型系统 | 场景 |
|---|---|---|---|
| CP | 可用性 | HBase / MongoDB(强一致模式) / ZooKeeper | 金融交易/库存扣减 |
| AP | 一致性(最终一致) | Cassandra / DynamoDB / DNS | 社交动态/推荐/缓存 |
| CA | 分区容忍 | 单机MySQL(非分布式) | 不适用于分布式 |
BASE vs ACID:
| 维度 | ACID(传统数据库) | BASE(分布式) |
|---|---|---|
| 一致性 | 强一致性 | 最终一致性 |
| 可用性 | 可能阻塞等待 | 基本可用(允许降级) |
| 状态 | 事务后确定状态 | 软状态(中间态可接受) |
| 适用 | 单机/小规模 | 大规模分布式 |
数据分片策略:
| 策略 | 原理 | 优点 | 缺点 |
|---|---|---|---|
| 哈希分片 | hash(key) % N | 均匀分布 | 扩缩容需重哈希 |
| 一致性哈希 | 环形空间+虚拟节点 | 增删节点影响小 | 实现较复杂 |
| 范围分片 | 按key范围划分 | 范围查询高效 | 可能热点倾斜 |
高频问法:为什么分布式系统必须保P → 网络分区是客观存在的故障,无法消除。一致性哈希虚拟节点的作用 → 将少量物理节点映射为大量虚拟节点,解决数据分布不均(倾斜)问题。
8分布式文件系统 ⭐ → 讲义
- 三种存储类型:块/文件/对象。块存储(SAN/DAS,裸块读写,低延迟)、文件存储(NFS/CIFS,目录层级,兼容POSIX)、对象存储(S3/MinIO,Key-Value-Metadata,可扩展高)。
- GFS ⭐:四大核心假设与背景;架构(Master+ChunkServer);追加写入流程;一致性妥协。
- HDFS ⭐:计算向数据移动;架构(双心结构 NameNode+DataNode)。
- 对象存储:Key、Value、Metadata。Key唯一标识资源,Value存数据本体,Metadata存描述信息(大小/类型/创建时间),HTTP API访问(RESTful)。
- Ceph ⭐:统一存储架构;三大接口(RBD 块、CephFS 文件、RGW 对象)。
- 选型:分布式文件系统如何选型。按场景:块存储(数据库/高频交易)、文件存储(媒体共享/HPC)、对象存储(静态文件/备份/云原生);按需求:一致性要求vs可用性、吞吐vs延迟、数据量级。
三种存储类型对比:
| 类型 | 访问粒度 | 特点 | 典型产品 |
|---|---|---|---|
| 块存储 | 固定大小块 | 高性能/低延迟/无元数据 | Ceph RBD / EBS |
| 文件存储 | 文件/目录 | 层级结构/共享访问 | NFS / CephFS / HDFS |
| 对象存储 | Key-Value对象 | 扁平命名空间/海量/HTTP API | S3 / Ceph RGW / MinIO |
GFS vs HDFS vs Ceph:
| 维度 | GFS | HDFS | Ceph |
|---|---|---|---|
| 设计者 | Apache(仿GFS) | 开源社区 | |
| 架构 | Master + ChunkServer | NameNode + DataNode | Monitor + OSD + MDS |
| 块大小 | 64MB | 128MB(默认) | 4MB(对象) |
| 写入模式 | 追加写(append) | 一次写多次读 | 随机读写 |
| 单点问题 | Master单点 | HA(双NameNode) | 无单点(CRUSH算法) |
| 存储接口 | 文件 | 文件 | 块+文件+对象(统一) |
高频问法:GFS四大核心假设 → 硬件故障是常态/文件以大文件为主/读以顺序读为主/追加写优于随机写。HDFS"计算向数据移动"含义 → 将计算任务调度到数据所在节点,避免大量数据网络传输。Ceph无单点原因 → CRUSH算法去中心化计算数据位置,不依赖中心目录。
9并行编程模型 ⭐ → 讲义
- 并行 vs 串行;并行计算三大流派。串行=顺序执行每次一步;并行=同时并行处理多任务。三大流派:任务并行(不同任务不同核)、数据并行(不同数据分块同时处理)、流水线并行(各阶段重叠执行)。
- 阿姆达尔定律 ⭐:串行部分对加速比的限制。加速比 = 1/((1−p)+p/n),p 为可并行比例。
- MapReduce ⭐:核心思想;执行流程(Split→Map→Shuffle→Reduce→Output);Combiner;容错与推测执行;经典示例(WordCount、排序、TopN)。
10Spark大数据处理 ⭐ → 讲义
- Spark 动机 ⭐:内存计算 vs MapReduce 磁盘计算;DAG 执行引擎;适用场景。
- 运行架构:整体架构;Executor 工作模式(长期驻留)。
- RDD ⭐⭐:五大特性(分区、依赖、计算函数、分区器、首选位置);宽依赖与窄依赖 ⭐;血缘追踪(Lineage)与容错。
- Transformation vs Action ⭐:Transformation(map/filter/flatMap/reduceByKey,惰性)与 Action(collect/count/saveAsTextFile,触发计算)分离。
- 缓存策略:Cache 与 Persist 的区别。
- DataFrame 与 Spark SQL:结构化数据优势;Catalyst 查询优化器与 Tungsten 代码生成。
宽依赖 vs 窄依赖:
| 维度 | 窄依赖(Narrow) | 宽依赖(Wide/Shuffle) |
|---|---|---|
| 父子关系 | 一对一(或多对一) | 一对多 |
| 是否Shuffle | 不触发 | 触发Shuffle |
| Stage划分 | 同一Stage内 | Stage边界 |
| 典型算子 | map / filter / union | reduceByKey / groupByKey / join |
| 容错 | 只需重算丢失的父分区 | 需重算多个父分区 |
MapReduce vs Spark:
| 维度 | MapReduce | Spark |
|---|---|---|
| 计算模型 | Map+Reduce两阶段 | DAG任意组合 |
| 中间数据 | 写磁盘(HDFS) | 存内存(可溢写磁盘) |
| 迭代计算 | 多次读写磁盘,慢 | 内存缓存,快10-100x |
| 延迟 | 高(批处理) | 低(支持流处理) |
| 容错 | 重算任务 | RDD Lineage血缘追踪 |
| API | Java为主 | Scala/Python/Java/R |
高频问法:RDD五大特性 → 分区列表/依赖列表/计算函数/分区器(可选)/首选位置(可选)。Lineage如何容错 → 记录RDD的转换链,分区丢失时根据依赖关系重算,窄依赖只需重算单个父分区。Cache vs Persist → Cache默认存内存(MEMORY_ONLY),Persist可指定存储级别(内存/磁盘/序列化)。
11大规模图计算
- 图计算应用:社交网络、推荐系统、知识图谱、金融风控。
- 图数据结构:顶点 Vertex、边 Edge、属性 Property;存储模型。
- NetworkX:纯 Python 轻量级,适合教学原型;Graph/DiGraph 创建;PageRank 实现。
- PageRank ⭐:随机游走模型;迭代计算与收敛;阻尼因子作用;应用场景。
- Neo4j:属性图模型;Cypher 查询(MATCH/WHERE/RETURN/CREATE);NetworkX vs Neo4j(内存计算 vs 持久化)。
12云原生平台
- Helm:K8s 包管理器;应用打包/版本管理/一键部署;Chart 结构(Chart.yaml、values.yaml、templates/);模板语法;多环境部署。
- Operator 模式:自定义资源 CRD;控制器模式(Reconcile Loop);常见实例(Prometheus/MySQL/Spark Operator)。
- Spark on Kubernetes:Driver Pod + Executor Pod;Spark Operator 流程;vs Spark on YARN。
- GitOps:Git 作为唯一真实来源;ArgoCD 架构与工作流;Flux 简介。
🎯自测(点击展开)
大数据的 4V+1C 特征?
Volume 数据量大、Velocity 快速、Variety 多样、Value 价值密度低、Complexity 复杂度高。
云计算五大本质特征?
按需自服务、弹性扩展、资源池化、网络访问、按量计费。
IaaS/PaaS/SaaS 的区别?
IaaS 提供基础设施(VM/存储/网络),PaaS 提供平台(运行环境/数据库),SaaS 提供完整软件应用。控制等级递增,用户管理负担递减。
容器和虚拟机的区别?
VM 共享硬件但各有完整OS,强隔离重启动慢;容器共享宿主OS内核,轻量启动快,隔离较弱。容器用Namespace隔离+Cgroup限资源。
云原生四大核心要素?
容器化、微服务、声明式API、不可变基础设施。
熔断器三态?
Closed(正常放行)、Open(熔断拒绝请求)、Half-Open(半开试探恢复)。
K8s Pod 的三种探针?
Liveness(存活探针,失败重启)、Readiness(就绪探针,失败移出负载)、Startup(启动探针,保护慢启动应用)。
CAP 定理?
一致性(C)、可用性(A)、分区容忍性(P)三者不可兼得,分布式系统通常在 CP 和 AP 间选择。BASE 是 AP 的实践(基本可用/软状态/最终一致)。
MapReduce 执行流程?
Split(分片)→Map(映射)→Shuffle(混洗/分组)→Reduce(归约)→Output(输出)。
RDD 宽依赖与窄依赖?
窄依赖:父分区被子分区一对一使用(如map/filter);宽依赖:父分区被多个子分区使用,触发Shuffle(如reduceByKey/groupByKey)。
Kafka 的核心概念?
Broker(节点)、Topic(主题)、Partition(分区,追加写)、Consumer Group(消费者组)、Offset(偏移量)。
阿姆达尔定律?
加速比=1/((1−p)+p/n),p为可并行比例,n为处理器数。串行部分(1−p)限制了最大加速比。
Kafka vs RabbitMQ 核心区别?
Kafka:高吞吐/拉取模式/分区追加写/适合日志和大数据流处理。RabbitMQ:AMQP协议/推送模式/Exchange路由/适合业务解耦和任务队列。
GFS 四大核心假设?
硬件故障是常态;文件以大文件为主;读以顺序读为主;追加写优于随机写。
RDD 五大特性?
分区列表(partitions)、依赖列表(dependencies)、计算函数(compute)、分区器(partitioner,可选)、首选位置(preferred locations,可选)。
StatefulSet vs Deployment?
StatefulSet:稳定网络标识(pod-0/pod-1)、独立持久存储(VolumeClaimTemplates)、有序启停;适合有状态应用(数据库/ZK)。Deployment:无状态,副本等价,适合Web服务。
Istio Service Mesh 架构?
控制面istiod(配置管理/证书/服务发现) + 数据面Envoy Sidecar(自动注入Pod,拦截全部流量)。功能:流量管理/mTLS安全/可观测性。
📝综合题库
选择题点选即时判分;填空题输入后"检查"或"显示答案"。
已答 0/0答对 0正确率 —
已答 0/0答对 0