跳到主要内容

分布式系统大厂面试高频知识点图解

一、分布式知识体系总览


二、CAP 定理

BASE 理论(对CAP的妥协)


三、一致性协议

Raft 协议

Raft 日志复制流程

Paxos vs Raft vs ZAB 对比

对比项PaxosRaftZAB
可理解性容易中等
Leader不强制强Leader强Leader
日志允许空洞连续日志连续日志
应用Google Chubbyetcd/ConsulZooKeeper

四、分布式事务

2PC 两阶段提交

2PC 缺点: 同步阻塞、单点故障(协调者)、数据不一致风险

TCC 补偿事务

Saga 模式


五、分布式锁

Redis 分布式锁流程

Redlock 算法(Redis多节点)


六、分布式 ID

雪花算法结构(64位)

 0 - 00000000 00000000 00000000 00000000 00000000 0 - 00000 - 00000 - 00000000 0000
│ 41位时间戳 5位 5位 12位
│ (可用约69年) 数据中心 机器ID 序列号
符号位 ID (4096/ms)
方案有序性可用性适用场景
UUID❌ 无序不要求有序的场景
数据库自增✅ 严格递增低(单点)小规模系统
号段模式✅ 趋势递增美团Leaf
雪花算法✅ 趋势递增Twitter/百度UidGenerator

七、服务治理

服务注册与发现

负载均衡算法

熔断、限流、降级

令牌桶 vs 漏桶


八、一致性哈希

传统取模 vs 一致性哈希

一致性哈希环

        Node A (hash=0)
╱ ╲
Key1 ● ● Key4
╱ ╲
Node D Node B
(hash=270) (hash=90)
╲ ╱
Key3 ● ● Key2
╲ ╱
Node C (hash=180)

Key顺时针找到的第一个节点即为负责节点
增加/删除节点只影响环上相邻的一段
虚拟节点: 每个物理节点映射多个虚拟节点到环上,解决数据倾斜

九、分库分表

分库分表路由


十、微服务架构全景


十一、高频面试题速查

问题答案要点
CAP定理是什么?一致性+可用性+分区容错,最多同时满足两个;P必须保证,实际是C和A的权衡
什么是最终一致性?允许数据暂时不一致,但经过一段时间后最终达成一致(BASE理论)
分布式事务有哪些方案?2PC/TCC/本地消息表/可靠消息/Saga;根据一致性要求选择
分布式锁怎么实现?Redis(SET NX+Lua+看门狗)/ZooKeeper(临时有序节点)/数据库(排他锁)
如何保证接口幂等?Token机制/唯一ID+DB唯一键/Redis SetNX/状态机
什么是脑裂?网络分区导致集群出现两个Leader,引发数据不一致
如何解决脑裂?过半选举机制/fencing token/共享存储心跳
雪花算法时钟回拨怎么办?等待/使用历史最大ID/备用机器ID
什么是服务雪崩?一个服务不可用导致调用链上游服务连锁故障
如何防止服务雪崩?熔断(Hystrix/Sentinel)+限流+降级+超时控制+隔离
分库分表后如何排序分页?每个分片查N条→内存归并排序→取前N条(深翻页性能差)
微服务和SOA的区别?微服务更细粒度、独立部署、去中心化;SOA偏ESB中心化
请作者喝奶茶:
Alipay IconQR Code
Alipay IconQR Code
本文遵循 CC CC 4.0 BY-SA 版权协议, 转载请标明出处
Loading Comments...