第2章 · 分布式架构


第2章 · 分布式架构

章节摘要:Gossip 维护集群视图,一致性哈希 + vnode 决定数据落点,LSM(CommitLog → MemTable → SSTable → Compaction)支撑写优化路径。本章对照 HBase Region/ZK 与 Mongo 分片 chunk 迁移。

上手前先明确

阅读完本章,你应当能够:

  1. 描述 Gossip 如何 O(log N) 传播节点状态
  2. 配置 NetworkTopologyStrategy 与 Snitch
  3. 画出写路径与读路径上的 Bloom Filter、Read Repair
  4. 选择 STCS/LCS/TWCS 中的一种 Compaction 策略并说明取舍

核心概念速览

存储引擎是「写优化换读放大」的契约——与 HBase HFile 同源 LSM,协调层却完全不同。

子章节导航

2.1 节点通信与 Gossip

Phi 故障检测、Seed 节点、Snitch 与 rack 感知。

2.2 数据复制与一致性级别

SimpleStrategy vs NTS、CL 罗盘、三层 repair。

2.3 存储引擎 Internals

CommitLog、MemTable flush、SSTable 归并读、STCS/LCS/TWCS。

子章节之间的逻辑关系

Gossip(谁活着) → 复制(数据在哪) → LSM(如何持久化) ↓ CL 与 Read Repair ​

前置知识与后续延伸

  • 前置:第1章 CAP 与 CL
  • 延伸:第3章 分区键设计;第4章 repair/nodetool;第5章 GC 与 Compaction 调优

前置知识与后续延伸

本章关键参数表

参数 默认值 含义 出错症状
num_tokens 256 每节点 vnode 数 手动调 1 后扩缩容迁移风暴
gossip_interval 1s Gossip 交换周期 调大后故障发现变慢
phi_convict_threshold 8 Phi 故障判定阈值 调小误判宕机、调大漏判
hinted_handoff_enabled true 写缓冲开关 关闭后短离线丢写
max_hint_window 3h hint 最长存活 超期节点需 repair
gc_grace_seconds 864000 tombstone 保留期 未 repair 时删除复活

常见疑问答疑

Gossip 为什么不搞一个中心注册表? 千节点集群里 ZK 会成为 CAP 瓶颈与运维单点;Gossip 用 O(log N) 轮次交换状态摘要,换来无中心视图。代价是视图短暂不一致,由数据平面的 CL 与 repair 兜底。

vnode 和物理节点是什么关系? vnode 是环上的逻辑 token 段,一个物理节点默认持 256 段。物理节点增减时数据在环上小步迁移,而不是旧版「一节点一环」的大范围移动。

MemTable 为什么放堆内? 因为要支持并发读写与按 key 有序访问,JVM 对象模型最直接;代价是 Young GC 频率高。堆外承担 Bloom Filter、Key Cache 等只读缓存。

Compaction 策略为什么不能一个全局默认走天下? 写密集、读敏感、时序 TTL 三种负载对「写放大 vs 读放大」的需求相反,STCS/LCS/TWCS 各占一角,只能表级选择。

术语速查

术语 一句话定义 章节
Phi 故障检测 按心跳分布计算置信度的自适应超时 2.1
Seed 新节点加入时的首个 Gossip 联系人 2.1
Snitch 把节点 IP 映射到 rack/DC 的探测器 2.1
Token Ring 2^64 哈希环,决定分区落点 2.1
Replication Strategy SimpleStrategy / NetworkTopologyStrategy 2.2
CommitLog 顺序追加的崩溃恢复日志 2.3
MemTable 堆内有序写缓冲 2.3
SSTable 磁盘上不可变的有序文件 2.3
Compaction 多 SSTable 归并,控读放大 2.3
Bloom Filter 概率性过滤器,挡无关 SSTable IO 2.3

进入第3章前的自测

# 用命令验证你对本章的理解 nodetool ring # 你能读出谁持有哪个 range 吗? nodetool gossipinfo # GENERATION 与 HEARTBEAT 代表什么? ​

能答出三问即可继续:其一,为什么 vnode 让均衡粒度更细;其二,QUORUM 写返回后读一定能看到吗,为什么;其三,LSM 用「读放大」换「写放大」,体现在哪个环节。

作者与出处
原作者:灏天文库
来源:平台策划编纂
整理人: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U