附录一:术语表
专业名词解释
1. 分布式系统基础
1.1 一致性模型
- 强一致性 (Strong Consistency
)
- 定义: 任何读操作都能读到最新写入的数据,系统表现如同单机。
- 场景: 银行转账、库存扣减等对一致性要求极高的场景。
- 关联: 通常需要牺牲可用性(CAP
定理中的 CP
系统)。
- 最终一致性 (
Eventual Consistency
) - 定义: 数据副本经过一段时间后达到一致状态,期间可能读到旧数据。
- 场景: 社交媒体的点赞数、评论显示等可容忍短暂不一致的场景。
- 关联:
DNS
系统、AP
型数据库(如Cassandra
)的默认模型。
1.2 容错机制
- 拜占庭容错 (BFT
, Byzantine Fault Tolerance
)
- 定义: 允许部分节点任意故障(包括恶意行为)仍能达成共识。
- 场景: 区块链、军事系统等对恶意攻击有防御需求的场景。
- 关联: 与 PBFT
(实用拜占庭容错)算法直接相关。
- 脑裂 (
Split Brain
) - 定义: 集群因网络分区形成多个子集群,各自认为自己是主节点。
- 场景:
ZooKeeper
/Redis
哨兵集群未正确配置时可能发生。 - 关联: 需通过
Quorum
或租约 (Lease
) 机制预防。
1.3 核心协议/算法
Quorum
机制- 定义: 一种通过读写副本数 (
R
,W
) 满足R + W > N
(N
为副本总数) 来保证分布式系统一致性的策略。 - 场景:
Cassandra
等NoSQL
数据库的一致性控制,保证读操作能看到至少一个最新写入的副本。 - 关联:
CAP
理论,读写性能与一致性的权衡。 - 租约 (
Lease
) - 定义: 一种分布式协议中用于协调节点间访问共享资源或确认主节点身份的机制,通过颁发带有有效期的 "租约" 来实现。
- 场景:
GFS
(Google File System
) 的Master
选举,避免脑裂。 - 关联: 分布式锁,
Master
选举。 Paxos
协议- 定义: 一种基于消息传递的、具有高容错性的分布式一致性算法,用于解决分布式系统中的共识问题。
- 场景:
Chubby
(Google 的分布式锁服务),保证分布式环境下操作的原子性和顺序性。 - 关联:
Raft
协议(更易理解的变种),2PC
。 Raft
协议- 定义: 一种易于理解和实现的分布式一致性算法,通过领导者选举 (
Leader Election
)、日志复制 (Log Replication
) 和安全性 (Safety
) 保证共识。 - 场景:
etcd
、Consul
、TiKV
等分布式系统的核心。 - 关联:
Paxos
协议,是其工程上的简化和改进。 - 一致性哈希 (
Consistent Hashing
) - 定义: 一种特殊的哈希算法,当节点增减时,仅需重新映射少量数据,而不是像传统哈希取模那样导致大规模数据迁移。
- 场景:
Redis Cluster
、Memcached
集群的节点管理,CDN
的内容分发。 - 关联: 哈希环,虚拟节点 (
Virtual Nodes
)。
2. 数据存储与数据库
2.1 存储引擎
- LSM
树 (Log-Structured Merge Tree
)
- 定义: 通过追加写和后台合并 (Compaction
) 实现高写入吞吐的数据结构。
- 场景: LevelDB
/RocksDB
/HBase
/Cassandra
等写密集型存储。
- 关联: 对比 B+
树(如 MySQL InnoDB
)的随机写优化。
WAL
(Write-Ahead Log
)- 定义: 在数据修改前先记录日志,用于故障恢复和保证持久化。
- 场景: 数据库 (
MySQL
、PostgreSQL
)、消息队列 (Kafka
) 的持久化保证。 -
关联: 与
Checkpoint
机制协同工作,AOF
(Append-Only File
)。 -
B+
树 (B+ Tree
) - 定义: 一种自平衡的树状数据结构,常用于数据库和文件系统的索引。特点是所有数据都存储在叶子节点,非叶子节点仅存储键值,且叶子节点间有指针相连。
- 场景:
MySQL InnoDB
、PostgreSQL
等关系型数据库的索引实现。 - 关联:
B
树,适合范围查询优化。
2.2 事务隔离级别
- 可重复读 (Repeatable Read
)
- 定义: 事务内多次读取同一数据结果一致,但可能幻读 (Phantom Read
)。
- 场景: MySQL InnoDB
默认级别,适合多数 OLTP
场景。
- 关联: 通过 MVCC
实现,与间隙锁 (Gap Lock
) 配合防幻读。
- 快照隔离 (
Snapshot Isolation
) - 定义: 事务基于某一时间点的数据快照操作,避免脏读、不可重复读和幻读(通常),但可能存在写偏斜 (
Write Skew
)。 - 场景:
Oracle
、PostgreSQL
等支持,适合长事务。 - 关联: 与多版本并发控制 (
MVCC
) 强相关。
2.3 并发控制
MVCC
(Multi-Version Concurrency Control
)- 定义: 多版本并发控制,一种通过保存数据在某个时间点的快照来实现并发访问的技术。读操作读取数据快照,写操作创建新版本,实现读写不阻塞。
- 场景:
PostgreSQL
、MySQL InnoDB
、Oracle
等数据库实现非阻塞读。 - 关联: 快照隔离,可重复读,
Undo Log
。 2PC
(Two-Phase Commit
)- 定义: 两阶段提交协议,一种保证分布式事务原子性的协议。分为准备阶段 (
Prepare
) 和提交阶段 (Commit
)。 - 场景:
XA
规范的基础,用于跨多个数据库或资源的分布式事务。 - 关联: 分布式事务,性能瓶颈(同步阻塞),
Saga
、TCC
模式的对比。 - 分布式锁 (
Distributed Lock
) - 定义: 在分布式环境下,控制多个进程/线程对共享资源互斥访问的一种机制。
- 场景: 秒杀系统防止超卖(对商品 ID 加锁),定时任务防止多实例重复执行。
- 关联: 基于
Redis
(RedLock
)、ZooKeeper
、etcd
实现,可能引入性能瓶颈和死锁风险。
2.4 数据库架构
- 读写分离 (
Read-Write Splitting
) - 定义: 一种数据库架构模式,将写操作路由到主数据库 (
Master
),读操作路由到一个或多个从数据库 (Slave
),以提高读性能和可用性。 - 场景: 读多写少的业务场景,如新闻门户、博客平台。
- 关联: 主从复制,数据延迟问题,读写分离中间件 (
ProxySQL
,ShardingSphere
)。 - 分库分表 (
Sharding
) - 定义: 将数据按特定规则(如哈希、范围)拆分到不同数据库实例(分库)或表中(分表),以解决单库/单表数据量过大导致的性能瓶颈。
- 场景: 用户表、订单表数据量超过千万或上亿级别。
- 关联: 水平分片,垂直分片,分库分表中间件 (
MyCAT
,ShardingSphere
),跨分片查询问题,分布式 ID 生成。 HTAP
(Hybrid Transactional/Analytical Processing
)- 定义: 混合事务/分析处理架构,旨在让同一数据库系统同时支持高并发的在线事务处理 (
OLTP
) 和复杂的在线分析处理 (OLAP
)。 - 场景: 需要实时分析交易数据的业务,如实时风控、实时报表。
- 关联:
TiDB
(TiKV
+TiFlash
),行存与列存结合,资源隔离。 CDC
(Change Data Capture
)- 定义: 变更数据捕获,一种用于捕获数据库数据变更 (
INSERT
,UPDATE
,DELETE
) 的技术。 - 场景: 数据同步(如
MySQL
到Elasticsearch
),构建实时数据仓库,事件驱动架构。 - 关联:
Debezium
,Maxwell
,Canal
,基于数据库Binlog
。
2.5 NoSQL与缓存
Redis Sorted Set
- 定义:
Redis
的一种数据结构,类似于Java
的SortedSet
和HashMap
的结合体。每个元素关联一个分数 (score
),Redis
根据分数对元素进行排序,同时可以高效地通过元素名获取分数。 - 场景: 排行榜(按分数排序),社交网络
Feed
流(按时间戳排序)。 - 关联: 时间复杂度 O(logN) 的插入和查找。
- 缓存模式 (
Cache Pattern
) Cache-Aside
(旁路缓存): 最常用的模式。读:先读缓存,没有则读 DB,再写回缓存。写:先更新 DB,然后删除缓存。- **
Read-Through
: 应用只读缓存,缓存负责读 DB。 - **
Write-Through
: 应用写缓存,缓存负责写 DB(同步)。 Write-Back
(Write-Behind
): 应用写缓存,缓存异步写 DB。- 场景: Web 应用数据缓存,提升读性能。
- 关联:
Redis
,Memcached
, 缓存一致性问题 (Cache Coherency
)。 - 缓存问题
- 缓存击穿 (
Cache Breakdown
): 热点 Key 失效瞬间,大量请求直达 DB。解决方案:互斥锁,逻辑过期。 - 缓存穿透 (
Cache Penetration
): 查询不存在的数据,导致请求绕过缓存直接打到 DB。解决方案:布隆过滤器, 缓存空值。 - 缓存雪崩 (
Cache Avalanche
): 大量缓存 Key 在同一时间失效,或缓存服务宕机,导致 DB 压力剧增。解决方案:过期时间加随机值,多级缓存,限流降级。 - 布隆过滤器 (
Bloom Filter
) - 定义: 一种空间效率高的概率型数据结构,用于判断一个元素是否可能在一个集合中。特点是有一定的误判率(可能将不在集合的元素误判为在集合中),但绝不会漏判(在集合中的元素一定能判断出来)。
- 场景: 防止缓存穿透,爬虫 URL 去重,黑名单过滤。
- 关联: 误判率 (
False Positive Rate
),哈希函数。
3. 计算与消息系统
3.1 流处理概念
- 事件时间 (Event Time
) vs 处理时间 (Processing Time
)
- 定义: 事件时间指数据实际发生的时间,处理时间指系统收到数据的时间。
- 场景: 乱序事件处理(如 IoT 设备延迟上报)必须用事件时间。
- 关联: Flink
的水印 (Watermark
) 机制基于事件时间。
- 状态 (
State
) 管理 - 定义: 流计算中跨事件保留的中间数据(如窗口聚合结果)。
- 场景: 实时统计、会话窗口分析。
-
关联: 需配合
Checkpoint
实现故障恢复(如Flink
的RocksDB
状态后端)。 -
水印 (
Watermark
) - 定义: 在流处理中,用于表示事件时间进展的一种机制,表明系统认为某个时间点之前的数据都已经到达,可以触发基于事件时间的窗口计算。
- 场景:
Flink
处理乱序事件,保证窗口计算的完整性。 -
关联: 事件时间,窗口 (
Tumbling
/Sliding
/Session
),允许延迟 (Allowed Lateness
)。 -
窗口 (
Window
) - 定义: 在流处理中,将无界数据流切分成有界块进行处理的机制。
- 类型: 滚动窗口 (
Tumbling Window
),滑动窗口 (Sliding Window
),会话窗口 (Session Window
)。 - 场景: 实时统计(如每分钟 PV),聚合分析(如用户 30 分钟内无操作则判定会话结束)。
-
关联: 水印,事件时间,处理时间。
-
背压 (
Backpressure
) - 定义: 在数据处理管道中,当下游算子处理速度跟不上上游算子发送速度时,下游向上游反馈压力,让上游降低发送速率的机制。
- 场景:
Spark Streaming
,Flink
等流处理框架防止因处理能力不足导致内存溢出或任务失败。 -
关联:
TCP
滑动窗口,流量控制。 -
CEP
(Complex Event Processing
) - 定义: 复杂事件处理,一种基于事件流的技术,通过识别事件流中的模式、关系和抽象,来实时地推断、分析和决策。
- 场景: 金融欺诈检测(如"短时间内多笔小额交易后接一笔大额取现"),实时风控,物联网设备异常检测。
- 关联:
Flink CEP
库,Drools Fusion
,规则引擎。
3.2 消息模式
- 发布/订阅 (
Pub-Sub
) - 定义: 消息生产者 (
Publisher
) 将消息发送至主题 (Topic
),多个消费者 (Subscriber
) 独立消费。 - 场景:
Kafka
的 Topic 模式、Redis
的Pub/Sub
,日志广播,事件通知。 -
关联: 对比点对点 (
Queue
) 模式。 -
死信队列 (
DLQ
,Dead Letter Queue
) - 定义: 无法被正常消费的消息(如达到最大重试次数、消息格式错误)会被路由到特殊队列,以便后续分析或处理。
- 场景: 处理因格式错误或业务规则拒绝的消息,避免阻塞正常队列。
-
关联:
RabbitMQ
/Kafka
均支持DLQ
配置。 -
推拉结合 (
Push-Pull Hybrid
) - 定义: 在
Feed
流等场景中,结合推(写扩散)和拉(读扩散)模式的一种策略。 - 场景: 社交网络
Timeline
。对粉丝少的用户使用推模式(发帖时推送给粉丝缓存),对粉丝多的大 V 使用拉模式(读Timeline
时拉取),兼顾读写性能。 - 关联:
Feed
流设计,写扩散,读扩散。
3.3 计算框架
MapReduce
- 定义: Google 提出的一个编程模型和处理大数据集的软件框架。核心思想是将计算任务分解为 Map(映射)和 Reduce(化简)两个阶段。
- 场景: 离线批处理,如日志分析、倒排索引构建、
PageRank
计算。 - 关联:
Hadoop
,Spark
(作为其性能改进),分治思想。 DAG
(Directed Acyclic Graph
)- 定义: 有向无环图,一种图结构,其中节点代表操作或任务,有向边代表依赖关系,且图中不存在环路。
- 场景:
Spark
的任务调度引擎,将一系列 RDD 转换操作构建成DAG
,优化执行计划,减少中间数据落盘。 - 关联:
Spark RDD
,宽窄依赖。 RDD
(Resilient Distributed Dataset
)- 定义:
Spark
的核心抽象,弹性分布式数据集。它是一个不可变的、分区的、可并行操作的数据集合,具有容错性(通过血缘关系Lineage
恢复)。 - 场景:
Spark
进行内存计算的基础。 - 关联:
Spark
,内存缓存 (persist
),DAG
,血缘 (Lineage
)。
4. 云原生与运维
4.1 服务治理
- 熔断 (Circuit Breaking
)
- 定义: 当依赖的服务调用失败率或响应时间超过阈值时,暂时阻止对该服务的进一步调用(如同电路断开),一段时间后尝试恢复。
- 场景: 微服务间依赖调用(如 Hystrix
/Sentinel
/Istio
),防止级联失败(雪崩效应)。
- 关联: 与降级 (Fallback
)、限流 (Rate Limiting
) 组成容错三剑客。
- 金丝雀发布 (
Canary Release
) - 定义: 将新版本服务引入生产环境,但只将一小部分用户流量(如 1%)导向新版本,观察运行情况。验证无误后,逐步增加流量比例,最终完成全量上线。
- 场景:
A/B
测试、高风险变更的平滑发布、新功能验证。 -
关联: 需配合流量切换机制(如
Istio VirtualService
),蓝绿发布 (Blue-Green Deployment
)。 -
服务网格 (
Service Mesh
) - 定义: 一个用于处理服务间通信的基础设施层。它负责可靠地传递请求,通常通过在每个服务旁部署一个轻量级的网络代理 (
Sidecar
) 来实现,这些代理组成了服务网格。 - 场景: 微服务架构的流量管理、服务发现、负载均衡、熔断、遥测、安全通信。
-
关联:
Istio
,Linkerd
,Envoy
(作为Sidecar
代理)。 -
API
网关 (API Gateway
) - 定义: 在微服务架构中,作为所有客户端请求的单一入口点。负责请求路由、协议转换、认证授权、限流熔断、日志监控等通用功能。
- 场景: 微服务架构的前端接入层。
-
关联:
Kong
,Spring Cloud Gateway
,Zuul
。 -
RPC
(Remote Procedure Call
) - 定义: 远程过程调用,允许一台计算机上的程序调用另一台计算机上的子程序,而程序员无需额外为这种交互编程。
- 场景: 微服务间的同步通信。
- 关联:
gRPC
,Dubbo
,Thrift
,REST API
(作为对比)。
4.2 可观测性 (Observability
)
- 可观测性三支柱 (
Three Pillars of Observability
) - 定义: 指构建可观测系统的三个关键数据源:日志 (
Logs
)、指标 (Metrics
) 和追踪 (Traces
)。 - 日志 (
Logs
): 记录离散事件,如错误信息、应用启动日志。 - 指标 (
Metrics
): 可聚合的数值型数据,反映系统状态,如CPU
使用率、QPS
。 - 追踪 (
Traces
): 记录单个请求跨越多个服务的完整路径和耗时。 - 场景: 理解分布式系统行为,快速定位和诊断问题。监控系统 (课程四) 演进的核心目标。
- 关联:
ELK
(Logs
),Prometheus
(Metrics
),Jaeger
/Zipkin
(Traces
),OpenTelemetry
。 OpenTelemetry
- 定义: 一个由
CNCF
(云原生计算基金会)托管的开源项目,旨在提供一套统一的API
、库、代理和收集器服务,用于生成、收集和导出遥测数据(指标、日志和追踪),以实现有效的可观测性。 - 场景: 标准化分布式系统的监控数据采集。
- 关联: 替代旧版的
OpenTracing
和OpenCensus
,与Jaeger
、Prometheus
等后端集成。 RED
指标- 定义: 一种用于监控微服务健康状况的指标模型,关注三个关键指标:Rate(请求率,每秒请求数)、Errors(错误率,失败请求的比例)、Duration(耗时,请求处理时间的分布,如 P99 延迟)。
- 场景: 快速评估服务运行状态和性能。
- 关联: 与 Google
SRE
提出的四个黄金信号(延迟、流量、错误、饱和度)类似。USE
指标(Utilization
/Saturation
/Errors
)。 (新增) Alertmanager
- 定义:
Prometheus
生态中的告警处理组件。负责接收来自Prometheus Server
(或其他客户端) 的告警通知,进行去重、分组、静默、抑制,并通过配置的接收器(如Email
,Slack
,Webhook
)路由告警。 - 场景: 监控系统 (课程四) 中实现告警的集中管理和发送。
- 关联:
Prometheus
, 告警规则 (Alerting Rules
)。
4.3 容器与编排
- 容器化 (
Containerization
) - 定义: 一种轻量级的操作系统层虚拟化技术,允许将应用程序及其所有依赖项(库、配置文件等)打包到一个标准化的单元(容器)中进行部署。
- 场景: 应用部署,环境一致性保证,微服务打包。
- 关联:
Docker
,Kubernetes
,OCI
(Open Container Initiative
)。 Kubernetes
(K8s
)- 定义: 一个开源的容器编排系统,用于自动化容器化应用程序的部署、扩展和管理。
- 场景: 大规模容器集群管理,微服务部署,
CI/CD
。 - 关联:
Docker
,Pod
,Service
,Deployment
,CNCF
。 - 服务发现 (
Service Discovery
) - 定义: 在分布式系统中,动态查找可用服务实例(IP地址和端口)的过程。
- 场景: 微服务架构中,服务消费者需要找到服务提供者的网络位置。
- 关联:
Kubernetes Service
,Consul
,Nacos
,Eureka
。 Sidecar
模式- 定义: 一种将应用的功能拆分成单独进程(边车)的部署模式。
Sidecar
容器与主应用容器一起部署在同一个Pod
中,共享网络和存储卷,用于增强主应用的功能(如日志收集、监控代理、服务网格代理)。 - 场景:
Istio
的Envoy
代理,日志收集 Agent (如Filebeat
)。 - 关联:
Kubernetes Pod
, 服务网格 (Service Mesh
)。
4.4 Serverless
- 无服务器架构 (Serverless Architecture)
- 定义: 一种云计算执行模型,其中云提供商动态管理服务器资源的分配和供应。应用程序以函数(Function)的形式部署,按实际使用量计费,开发者无需管理底层服务器。
- 场景: 事件驱动的应用(如图片处理、API后端),定时任务,需要极致弹性的场景。
- 关联: FaaS (Function as a Service), BaaS (Backend as a Service), AWS Lambda, Google Cloud Functions, Azure Functions, 阿里云函数计算(FC)。
5. AI与大数据
5.1 机器学习
- Embedding
- 定义:将离散对象(如单词、商品、用户)映射为低维稠密的连续向量(Vector)。这些向量能够捕捉对象的语义或关系特征。
- 场景:推荐系统的相似度计算(如找到相似商品/用户)、NLP的词向量表示(Word2Vec, GloVe, BERT)、图像识别。
- 关联:与Faiss/Pinecone/Milvus等向量数据库配合使用进行高效相似性搜索。
- 联邦学习(Federated Learning)
- 定义:一种分布式机器学习技术,允许多个参与方在本地使用自己的数据训练模型,然后仅共享模型更新(如梯度或权重),而非原始数据,从而在保护数据隐私的同时进行联合建模。
- 场景:医疗、金融等隐私敏感领域的联合建模,跨机构数据协作。
-
关联:需依赖安全聚合(Secure Aggregation)协议,差分隐私(Differential Privacy)。 FATE框架。
-
特征工程 (Feature Engineering)
- 定义: 利用领域知识和数据分析技术,从原始数据中提取、构造或选择对机器学习模型预测性能最有用的特征(变量)的过程。
- 场景: 几乎所有的机器学习任务,是决定模型效果上限的关键步骤。推荐系统 (课程七) 和风控系统 (课程五) 中的用户、物品、上下文特征构建。
-
关联: 特征提取,特征选择,特征转换,特征平台(如Feast)。
-
模型服务化 (Model Serving)
- 定义: 将训练好的机器学习模型部署为可通过API(如REST或gRPC)访问的服务,使其能够在生产环境中接收输入数据并返回预测结果的过程。
- 场景: 将AI模型集成到实际应用中,如在线推荐 (课程七)、图像识别API、欺诈检测服务 (课程五)。AI 平台 (课程十二) 的核心环节。
-
关联: TensorFlow Serving, Triton Inference Server, KFServing/KServe, Seldon Core, 模型压缩与优化 (ONNX, TensorRT)。
-
MLOps
- 定义: 一套旨在可靠、高效地构建、部署和运维机器学习系统的实践集合。它结合了机器学习(ML)、数据工程(Data Engineering)和DevOps,目标是打通从数据准备到模型监控的整个生命周期。
- 场景: 实现机器学习项目从实验到生产的端到端自动化、标准化和可重复性。AI 平台 (课程十二) 的核心理念。
-
关联: CI/CD for ML, Kubeflow, MLflow, Metaflow, 实验跟踪, 模型监控, 版本控制, 特征平台。
-
(新增) CTR (Click-Through Rate)
- 定义: 点击率,指在线广告或推荐内容被点击的次数与被展示次数的比例。
- 场景: 推荐系统 (课程七) 和在线广告中的核心优化指标,用于评估内容的吸引力。
-
关联: CVR (转化率), 精排模型 (Rank Model)。
-
(新增) CVR (Conversion Rate)
- 定义: 转化率,指用户完成期望行为(如购买、注册)的次数与被展示或点击次数的比例。
- 场景: 电商推荐 (课程七)、广告效果评估的关键业务指标。
-
关联: CTR, 多目标优化。
-
(新增) 召回 (Recall)
- 定义: 在推荐系统或信息检索中,指从海量物品库中初步筛选出可能符合用户兴趣的一个候选子集的过程。
- 场景: 推荐系统 (课程七) 的第一阶段,目标是保证相关物品尽可能被包含在内,宁可错杀不可放过。常用策略包括协同过滤、内容召回、热门召回等。
-
关联: 排序 (Ranking), 多路召回 (Multi-channel Recall), 覆盖率。
-
(新增) 排序 (Ranking)
- 定义: 在推荐系统中,对召回阶段产生的候选物品集进行精细化排序,目标是预测用户对每个物品的偏好程度(如点击率),并将最可能感兴趣的物品排在前面。
- 场景: 推荐系统 (课程七) 的核心阶段,直接影响用户体验和业务指标。
-
关联: 精排 (Fine-Ranking), 粗排 (Coarse-Ranking), CTR预估, 机器学习排序模型 (LR, GBDT, DeepFM)。
-
(新增) 多目标优化 (Multi-Objective Optimization)
- 定义: 在推荐或决策系统中,同时优化多个相互冲突或关联的目标(如点击率、转化率、用户停留时长、内容多样性等),而非仅仅优化单一目标。
- 场景: 推荐系统 (课程七) 后期,平衡用户短期兴趣和长期体验,以及平台商业目标。
-
关联: 排序模型设计, A/B 测试。
-
(新增) EE (Explore & Exploit)
- 定义: 探索与利用,推荐或决策系统中的一种策略平衡。利用 (Exploit) 指推荐系统根据已知用户偏好推荐最可能成功的物品;探索 (Explore) 指尝试推荐用户可能感兴趣的新物品或领域,以发现新偏好和避免信息茧房。
- 场景: 推荐系统 (课程七) 提升多样性和新颖性,解决冷启动问题。
- 关联: Bandit 算法 (如 Thompson Sampling, LinUCB)。
5.2 大数据架构
- Lambda架构
- 定义:一种结合批处理(Batch Layer)和流处理(Speed Layer)的数据处理架构。批处理层处理所有历史数据以提供精确结果,速度层处理实时数据以提供低延迟的近似结果,最终在服务层(Serving Layer)合并两者结果。
- 场景:需要同时满足实时与离线分析的系统,但架构复杂,维护成本高。
-
关联:正被Kappa架构(纯流处理)逐步替代或简化。
-
Kappa架构
- 定义: 一种简化Lambda架构的数据处理模型,认为所有数据处理都可以通过流处理完成。它只有一个处理层(流处理层),历史数据可以通过重新消费消息队列中的数据来进行重处理。
- 场景: 追求架构简洁、实时性要求高的场景。
-
关联: Flink, Kafka等流处理技术,Lambda架构的演进。
-
数据湖(Data Lake)
- 定义:一个集中式的存储库,允许以任意规模存储所有结构化和非结构化数据。数据可以按原样存储,无需预先定义结构,并在需要分析时再进行处理。
- 场景:企业级数据分析底座,存储原始数据供多种分析引擎使用。
-
关联:对比数据仓库(Data Warehouse)的Schema-on-Write模式,数据湖采用Schema-on-Read。Delta Lake, Iceberg, Hudi是常见的数据湖存储格式。
-
数据仓库 (Data Warehouse)
- 定义: 一个面向主题的、集成的、时变的、非易失的数据集合,用于支持管理决策过程。通常存储经过清洗、转换和整合后的结构化数据。
- 场景: 商业智能(BI)报表,决策支持系统。
- 关联: ETL (Extract, Transform, Load), OLAP, 数据集市 (Data Mart), Snowflake, Redshift, BigQuery。
5.3 分布式训练
- 数据并行 (Data Parallelism)
- 定义: 一种分布式训练策略,将训练数据分成多个批次(minibatch),每个计算设备(如GPU)加载完整的模型副本,处理一个数据批次,计算梯度,然后通过某种方式(如AllReduce)同步或平均梯度,更新模型参数。
- 场景: 训练大型模型时,单个GPU显存足够放下模型,但需要加速训练过程。AI 平台 (课程十二) 中常用的加速手段。
-
关联: Horovod, PyTorch DDP, NCCL/Gloo (通信库), Parameter Server架构的对比。
-
模型并行 (Model Parallelism)
- 定义: 一种分布式训练策略,当模型过大无法放入单个计算设备时,将模型的不同部分(层)分布到不同的设备上进行计算。
- 类型: 流水线并行 (Pipeline Parallelism), 张量并行 (Tensor Parallelism)。
- 场景: 训练超大规模模型(如GPT-3等千亿参数模型)。AI 平台 (课程十二) 大模型训练的关键技术。
-
关联: DeepSpeed, Megatron-LM, ZeRO。
-
(新增) ZeRO (Zero Redundancy Optimizer)
- 定义: 由微软 DeepSpeed 提出的一种优化大规模模型训练显存占用的技术。它通过将优化器状态、梯度和模型参数在数据并行进程中进行分割,来显著减少每个 GPU 的内存冗余。
- 场景: AI 平台 (课程十二) 训练显存需求极大的超大模型。
-
关联: DeepSpeed, 数据并行, 模型并行。
-
参数服务器 (Parameter Server, PS)
- 定义: 一种分布式机器学习架构。计算节点分为参数服务器(存储和更新模型参数)和工作节点(Worker,计算梯度)。工作节点从PS拉取参数,计算梯度,再推送给PS进行更新。
- 场景: 推荐系统等模型特征维度极高(稀疏)的场景,广告点击率预估。AI 平台 (课程十二) 分布式训练的一种可选方案。
-
关联: TensorFlow早期版本广泛使用,异步更新可能导致梯度陈旧问题。 数据并行(AllReduce)的对比。
-
(新增) ONNX (Open Neural Network Exchange)
- 定义: 一个用于表示深度学习模型的开放格式。旨在让模型能够在不同的框架(如 TensorFlow, PyTorch, Caffe2)之间进行转换和互操作,并方便部署到多种硬件平台。
- 场景: AI 平台 (课程十二) 中实现模型的跨框架训练、优化和部署。
-
关联: 模型服务化, 推理优化 (TensorRT, ONNX Runtime)。
-
(新增) 推理优化 (Inference Optimization)
- 定义: 对训练好的机器学习模型进行各种优化,以提高其在生产环境中进行预测(推理)的速度、降低延迟、减少资源占用的过程。
- 方法: 量化 (Quantization), 剪枝 (Pruning), 知识蒸馏 (Distillation), 算子融合 (Operator Fusion), 使用优化推理引擎。
- 场景: AI 平台 (课程十二) 模型服务化的关键环节,尤其对于大模型和边缘计算。
-
关联: TensorRT, OpenVINO, ONNX Runtime, vLLM, DeepSpeed Inference。
-
(新增) Triton Inference Server
- 定义: NVIDIA 开发的高性能推理服务器,支持多种框架(TensorFlow, PyTorch, ONNX, TensorRT 等),提供 HTTP/gRPC 接口,支持动态批处理、模型管理、多 GPU 推理等功能。
- 场景: AI 平台 (课程十二) 和推荐系统 (课程七) 中部署和管理多种机器学习模型进行在线推理。
-
关联: 模型服务化, KFServing/KServe, TensorFlow Serving, TorchServe。
-
(新增) KFServing / KServe
- 定义: 基于 Kubernetes 构建的、用于部署和服务化机器学习模型的开源平台 (现已更名为 KServe)。它提供了 Serverless 推理、自动伸缩、流量管理(Canary/Shadow)、模型可解释性等高级功能。
- 场景: AI 平台 (课程十二) 在 Kubernetes 环境下实现标准化的模型部署和管理。
- 关联: Kubernetes, Serverless, Istio/Knative, 模型服务化, Triton Inference Server。
6. 其他重要概念
- CDN (Content Delivery Network)
- 定义: 内容分发网络,一个由分布在不同地理位置的服务器组成的网络,用于更快、更可靠地将静态内容(如图片、视频、CSS、JS文件)分发给用户。通过将内容缓存到离用户更近的边缘节点来实现加速。
- 场景: 网站加速,视频点播/直播,大文件下载。
- 关联: 边缘计算,缓存策略 (TTL)。
- DNS (Domain Name System)
- 定义: 域名系统,互联网的一项核心服务,它将人类可读的域名(如www.google.com)解析为机器可读的IP地址(如172.217.160.142)。
- 场景: 访问网站,邮件路由等所有依赖域名的互联网服务。
- 关联: 最终一致性,DNS缓存,智能DNS(根据用户地理位置返回不同IP)。
- Nginx
- 定义: 一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。以其高性能、稳定性、丰富的功能集、简单的配置和低资源消耗而闻名。
- 场景: Web服务器,反向代理,负载均衡,动静分离,API网关。
- 关联: Apache (作为对比),OpenResty (基于Nginx的扩展)。
- 负载均衡 (Load Balancing)
- 定义: 将网络或应用程序流量分发到多个服务器的过程。负载均衡旨在优化资源使用,最大化吞吐量,最小化响应时间,并确保高可用性。
- 类型: L4(传输层,如TCP/UDP),L7(应用层,如HTTP)。
- 算法: 轮询 (Round Robin), 最少连接 (Least Connections), IP哈希, URL哈希。
- 场景: 提高Web应用、数据库等服务的可扩展性和可靠性。
- 关联: Nginx, HAProxy, F5 BIG-IP, 云厂商负载均衡器 (ELB, ALB)。
- OAuth 2.0
- 定义: 一个开放的授权标准,允许用户授权第三方应用访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方应用。
- 场景: 第三方登录(如"使用Google/微信账号登录"),API授权。
- 关联: OpenID Connect (基于OAuth 2.0的身份认证层)。
- JWT (JSON Web Token)
- 定义: 一种开放标准(RFC 7519),它定义了一种紧凑且自包含的方式,用于在各方之间安全地传输信息(声明)。这些信息可以被验证和信任,因为它是数字签名的。
- 场景: API认证与授权,单点登录(SSO)。
- 关联: Session认证(作为对比),通常包含头部(Header)、载荷(Payload)、签名(Signature)三部分。
- SLA (Service Level Agreement)
- 定义: 服务水平协议,服务提供商与其客户之间定义的、关于服务性能(如可用性、响应时间)的明确承诺。
- 场景: 云服务合同,衡量系统可靠性的指标。
- 关联: SLI (Service Level Indicator, 服务水平指标), SLO (Service Level Objective, 服务水平目标)。如可用性达到99.99% ("四个九")。
- 混沌工程 (Chaos Engineering)
- 定义: 在分布式系统上进行实验的学科,目的是建立对系统抵御生产环境中失控条件的能力信心。通过主动注入故障(如网络延迟、节点宕机)来测试系统的弹性和恢复能力。
- 场景: 验证系统容错性,发现潜在弱点,提升系统韧性。
- 关联: Netflix Chaos Monkey, Chaos Mesh, Gremlin, Litmus。
7. 架构模式补充
- 单体架构 (Monolithic Architecture)
- 定义: 一种传统的软件架构风格,将应用程序的所有功能模块(如用户界面、业务逻辑、数据访问)都打包在一个独立的部署单元中。
- 场景: 简单的应用、项目初期快速验证、小型团队开发。
-
关联: 微服务架构(作为演进的起点和对比),分层架构。
-
事件驱动架构 (Event-Driven Architecture - EDA)
- 定义: 一种软件架构模式,强调通过生成、检测、消费和响应事件来进行组件间的异步通信和解耦。
- 场景: 微服务解耦、实时响应系统(如风控)、复杂业务流程编排。
-
关联: 消息队列 (Kafka/RabbitMQ), 发布/订阅模式, Serverless。
-
流批一体 (Unified Batch and Stream Processing)
- 定义: 一种数据处理范式,旨在使用同一套代码或API来处理有界(批处理)和无界(流处理)数据。
- 场景: 需要同时进行实时和离线分析,且希望简化开发和维护的场景。
-
关联: Flink, Spark Structured Streaming, Kappa 架构。
-
冷热数据分离 (Cold/Hot Data Separation)
- 定义: 根据数据的访问频率和时效性,将数据存储在不同成本和性能的存储介质上的策略。热数据存放在高速存储(如SSD、内存),冷数据存放在低成本存储(如HDD、对象存储)。
- 场景: 日志系统、监控系统、历史订单归档等需要长期存储但访问频率随时间降低的场景。
-
关联: 数据生命周期管理, 存储成本优化, 时序数据库。
-
CQRS (Command Query Responsibility Segregation)
- 定义: 命令查询职责分离,一种将数据更新操作(命令)的模型与数据读取操作(查询)的模型分离的模式。
- 场景: 读写负载差异巨大的系统,需要针对读写分别进行优化的场景,复杂查询场景。
-
关联: 事件溯源 (Event Sourcing), 读写分离, 微服务架构。
-
补偿机制 (Compensation Mechanism) / Saga模式
- 定义: 在分布式事务中,当某个子事务失败时,执行预定义的补偿操作来撤销已成功执行的子事务造成的影响,以达到最终一致性。Saga 是一种常见的实现补偿机制的模式。
- 场景: 需要保证跨多个服务操作最终一致性,但无法或不适合使用 2PC 的场景。
-
关联: 分布式事务, 最终一致性, Seata Saga 模式, TCC。
-
AB测试 (A/B Testing)
- 定义: 一种在线实验方法,通过将用户随机分成两组(A组和B组),分别展示不同的产品版本(如界面、算法),并比较两组的用户行为指标(如点击率、转化率),以确定哪个版本效果更好。
- 场景: 产品功能优化、UI/UX 改进、推荐算法/广告策略效果评估。
- 关联: 金丝雀发布, Feature Flag, 统计学显著性。
8. 数据存储与处理补充
- 数据库索引 (Database Index)
- 定义: 一种数据库对象,用于加速对表中数据的查询速度。它通过创建指向数据物理位置的指针来实现,通常基于一个或多个列的值。
- 场景: 加速 SELECT 查询的 WHERE 子句、ORDER BY 子句和 JOIN 操作。
-
关联: B+树, LSM树 (作为索引结构), 查询优化器, 索引覆盖。
-
主从复制 (Master-Slave Replication)
- 定义: 一种数据库高可用和读扩展技术,将一个数据库实例(Master)的数据变更复制到一个或多个其他实例(Slave)。
- 场景: 数据库读写分离、数据备份、故障转移。
-
关联: 读写分离, 数据延迟, 异步/半同步/同步复制, MGR。
-
时序数据库 (Time Series Database - TSDB)
- 定义: 专门为存储、检索和分析带时间戳的时间序列数据而优化的数据库。
- 场景: 监控指标、物联网传感器数据、金融交易数据、实时应用性能数据。
-
关联: InfluxDB, TDengine, Prometheus TSDB, 高基数问题, 数据压缩。
-
向量库 (Vector Database)
- 定义: 专门用于存储、管理和高效检索高维向量数据的数据库,通常用于相似性搜索。
- 场景: 基于 Embedding 的推荐系统、图像/视频检索、自然语言处理中的语义搜索。
-
关联: Embedding, 近似最近邻 (ANN) 搜索算法 (如 HNSW, IVF_FLAT), Faiss, Milvus, Pinecone。
-
图数据库 (Graph Database)
- 定义: 使用图结构(节点、边、属性)来存储和查询数据的数据库,特别擅长处理复杂的关系网络。
- 场景: 社交网络分析、欺诈检测、知识图谱、推荐系统。
- 关联: Neo4j, JanusGraph, Cypher, Gremlin, 关系图谱。
9. AI 与 MLOps 补充
- 特征平台 (Feature Store)
- 定义: 一个集中的系统,用于管理、存储、发现和提供机器学习特征数据,确保训练和推理时特征的一致性。
- 场景: MLOps 流程中的特征工程管理,解决 Training-Serving Skew 问题,促进特征复用。
-
关联: Feast, Tecton, MLOps, 特征工程, 实时/离线特征。
-
在线学习 (Online Learning)
- 定义: 一种机器学习范式,模型可以根据实时流入的数据持续地进行更新和学习,而不是依赖定期的离线批量训练。
- 场景: 需要模型快速适应用户行为或环境变化的场景,如实时推荐、在线广告、欺诈检测。
-
关联: FTRL (Follow The Regularized Leader), 增量学习, 实时特征。
-
冷启动 (Cold Start)
- 定义: 在推荐系统或机器学习应用中,指新用户、新物品或新模型缺乏历史数据而难以进行有效推荐或预测的问题。
- 场景: 新用户注册、新商品上架、模型初次部署。
- 关联: 推荐系统, 内容特征, 用户画像, 探索与利用 (EE)。
附录使用说明
- 检索功能:按技术领域(如"分布式""数据库")或具体名词(如"Paxos")快速定位。
- 关联学习:通过"关联"字段跳转到相关术语,建立知识网络。
- 场景映射:结合"场景"字段理解技术选型的实际依据。