五、分布式 / 运维 / 云原生
领域概览:现代后端架构的核心,涵盖微服务、K8s、分布式事务、混沌工程等热点话题。
术语 | 领域 | 字面误解 | 真实含义 | 备注/例子 |
|---|---|---|---|---|
熔断 | 分布式 | 保险丝断了 | 错误率高时直接拒绝请求,保护系统 | Circuit Breaker |
降级 | 分布式 | 降级 | 牺牲非核心功能,保核心 | 返回兜底 |
限流 | 分布式 | 限制流量 | 限制请求速率 | 令牌桶、漏桶 |
背压 | 分布式 | 背部压力 | 下游处理不过来,向上游反馈减速 | Backpressure |
金丝雀发布 | 运维 | 金丝雀 | 先放小部分流量试新版本 | Canary |
蓝绿部署 | 运维 | 蓝绿色 | 两套环境,切流量发布 | Blue-Green |
滚动发布 | 运维 | 滚动 | 逐步替换实例 | Rolling Update |
灰度发布 | 运维 | 灰色 | 按比例/规则放量 | 灰度 |
混沌工程 | 运维 | 混乱 | 主动注入故障验证系统 | Chaos Engineering |
幂等 | 分布式 | 幂等 | 多次执行结果一致 | 防重复扣款 |
无状态 | 分布式 | 没有状态 | 实例不保存会话,可任意扩缩 | Stateless |
有状态 | 分布式 | 有状态 | 实例保存数据,需特殊处理 | StatefulSet |
最终一致性 | 分布式 | 最终一致 | 一段时间后数据一致 | BASE |
CAP | 分布式 | 帽子 | 一致性、可用性、分区容忍三选二 | 实际分区时取舍 |
BASE | 分布式 | 基础 | 基本可用、软状态、最终一致 | 对比 ACID |
ACID | 数据库 | 酸 | 原子、一致、隔离、持久 | 事务特性 |
脏读 | 数据库 | 脏读 | 读到未提交数据 | 隔离级别 |
幻读 | 数据库 | 幻觉读 | 同一查询两次结果集不同 | 隔离级别 |
不可重复读 | 数据库 | 不能重复读 | 两次读同一行结果不同 | 隔离级别 |
MVCC | 数据库 | 多版本并发控制 | 读写不互相阻塞 | 快照隔离 |
WAL | 数据库 | 预写日志 | 先写日志再写数据 | 崩溃恢复 |
LSM 树 | 数据库 | 日志结构合并树 | 写优化存储结构 | LevelDB、RocksDB |
B+ 树 | 数据库 | B 加树 | 读优化索引结构 | MySQL InnoDB |
回表 | 数据库 | 回到表 | 二级索引查主键再查聚簇索引 | 覆盖索引可避免 |
覆盖索引 | 数据库 | 覆盖 | 索引包含查询所需列 | 不用回表 |
最左前缀 | 数据库 | 最左 | 联合索引从最左列开始匹配 | 索引优化 |
索引下推 | 数据库 | 下推 | 在存储引擎层过滤 | ICP |
谓词下推 | 数据库 | 下推 | 过滤条件下推到数据源 | 优化 |
执行计划 | 数据库 | 计划 | 数据库如何执行 SQL | EXPLAIN |
检查点 | 数据库 | 检查点 | 定期刷脏页,缩短恢复 | Checkpoint |
2PC/3PC | 分布式事务 | 两阶段/三阶段提交 | 分布式事务协议 | 阻塞、协调者单点 |
TCC | 分布式事务 | Try-Confirm-Cancel | 尝试-确认-取消 | 业务补偿 |
SAGA | 分布式事务 | 传奇 | 长事务拆成补偿链 | 最终一致 |
本地消息表 | 分布式事务 | 本地表 | 本地事务+消息表 | 可靠消息 |
事务消息 | 消息队列 | 事务消息 | 消息发送与本地事务一致 | RocketMQ |
最大努力通知 | 分布式事务 | 努力通知 | 不保证一定成功,靠重试 | 对账 |
服务注册/发现 | 微服务 | 注册/发现 | 实例注册,消费者发现 | Nacos、Consul |
健康检查 | 运维 | 检查健康 | 定期探测实例是否可用 | Liveness/Readiness |
探针 | K8s | 探针 | 存活、就绪、启动探测 | Probes |
污点/容忍 | K8s | 脏点/容忍 | 节点排斥 Pod,Pod 容忍才能调度 | Taints/Tolerations |
亲和性/反亲和性 | K8s | 亲/反亲 | 调度偏好或排斥 | Affinity |
驱逐 | K8s | 赶走 | 节点资源不足时迁移 Pod | Eviction |
QoS | K8s | 服务质量 | 资源保障等级 | Guaranteed/Burstable/BestEffort |
Sidecar | 云原生 | 边车 | 伴随主容器的辅助容器 | 代理、日志 |
Operator | K8s | 操作员 | 自定义控制器 | CRD+控制循环 |
CRD | K8s | 自定义资源定义 | 扩展 K8s API | CustomResourceDefinition |
Admission Webhook | K8s | 准入 Webhook | 请求准入时校验/修改 | Mutating/Validating |
RBAC | 安全/云原生 | 基于角色的访问控制 | 角色绑定权限 | Role/RoleBinding |
GitOps | 运维 | Git 操作 | 用 Git 作为期望状态源 | ArgoCD、Flux |
不可变基础设施 | 云原生 | 不可变 | 不修改,只替换 | Immutable Infrastructure |
基础设施即代码 | 云原生 | 代码 | 用代码管理基础设施 | Terraform |
Serverless | 云 | 无服务器 | 不用管服务器,按需运行 | FaaS |
FaaS | 云 | 函数即服务 | 运行函数,事件驱动 | AWS Lambda |
边缘计算 | 云 | 边缘 | 靠近数据源计算 | CDN、IoT |
多云/混合云 | 云 | 多/混合 | 多个云或公有+私有 | 避免锁定 |
图- CAP 三角与典型系统
实战场景:写支付接口必须考虑幂等性——同一笔订单重复请求不能扣两次款,常用方案是请求携带唯一 ID,服务端做去重。