首页课程小红花墙

计算机原理 · 小纸条

选一章打印。双面打印(按长边翻页)后沿虚线剪开,每张卡片正面题目、背面答案。

第 1 章30第 2 章30第 3 章30第 4 章30第 5 章30第 6 章30第 7 章30第 8 章30第 9 章30第 10 章30第 11 章30第 12 章30第 13 章30第 14 章30第 15 章30第 16 章30第 17 章30第 18 章30第 19 章30第 20 章30第 21 章30第 22 章30第 23 章30第 24 章30第 25 章30第 26 章30第 27 章30第 28 章30第 29 章30第 30 章30第 31 章30第 32 章30第 33 章30第 34 章30第 35 章30第 36 章30第 37 章15
只印题目
第 1 页 · 正面(题目)
1分片规则

按用户注册时间分片有什么问题?

2一致性哈希

它解决了什么问题?

3虚拟节点

不用虚拟节点会怎样?

4热点问题

怎么处理?

5CAP 定理

所以实际是在哪两者之间选?

6CAP 常见的误读

这个区别为什么重要?

7强一致性

为什么代价高?

8最终一致性

什么业务能接受?

9读己之所写

怎么实现?

10单调读

为什么会时间倒退?

第 1 页 · 背面(答案)

参考答案(家长):增删节点时只有相邻的一小部分数据要迁移。

参考答案(家长):新用户全挤在最后一个分片上,热点严重。

参考答案(家长):给这个键加随机后缀拆成多份,或者在应用层加缓存。

参考答案(家长):节点少时环上分布不均,负载差异很大。

参考答案(家长):正常时不必牺牲任何一个,只需为分区期准备预案。

参考答案(家长):分区发生时,在一致性和可用性之间选。

参考答案(家长):点赞数、浏览量、非关键的用户资料。

参考答案(家长):写要等多数节点确认,延迟高且分区时不可用。

参考答案(家长):两次读落到了同步进度不同的两个副本上。

参考答案(家长):让该用户的读请求路由到刚写入的那个副本。

第 2 页 · 正面(题目)
11共识问题

为什么这很难?

12FLP 不可能定理

那实际系统怎么办?

13两阶段提交

它的致命问题是什么?

14三阶段提交

这说明什么?

15Paxos 的核心想法

为什么多数派是关键?

16Raft 的设计目标

为什么"好懂"也是一个设计目标?

17Raft 选主

两个候选人同时发起怎么办?

18Raft 日志复制

为什么要多数确认才提交?

19脑裂

为什么多数派能防?

20拜占庭故障

容忍 f 个拜占庭节点需要多少总节点?

第 2 页 · 背面(答案)

参考答案(家长):引入超时假设或随机化,在实践中绕开这个理论限制。

参考答案(家长):你无法区分"节点挂了"和"节点很慢"。

参考答案(家长):分布式事务没有既简单又完美的方案。

参考答案(家长):协调者在第二阶段挂了,参与者会一直阻塞等待。

参考答案(家长):懂不了就实现不对,实现不对就没有正确性可言。

参考答案(家长):任意两个多数派一定有共同成员,保证了信息传递。

参考答案(家长):保证已提交的内容在任何新主上都存在。

参考答案(家长):都没拿到多数就重新选,超时时间随机化避免反复冲突。

参考答案(家长):至少 3f 加 1 个。

参考答案(家长):分区后最多一边能凑够多数,另一边选不出主。

第 3 页 · 正面(题目)
21什么场景要考虑拜占庭

为什么内部不用?

22分布式锁

持锁者卡住怎么办?

23分布式锁的陷阱

怎么防?

24尽量避免分布式锁

为什么?

25消息队列

解耦体现在哪?

26至多一次与至少一次

怎么做到恰好一次?

27消息顺序

怎么保证同一用户的消息有序?

28消息积压

怎么提前发现?

29死信队列

不做会怎样?

30事务消息

本地消息表怎么工作?

第 3 页 · 背面(答案)

参考答案(家长):给锁加过期时间,但这又带来了新问题。

参考答案(家长):节点都是自己的,代价大收益小。

参考答案(家长):它的正确性依赖很多假设,出错时难查也难复现。

参考答案(家长):给锁配递增令牌,资源方拒绝令牌变小的请求。

参考答案(家长):至少一次加上消费端幂等,等效于恰好一次。

参考答案(家长):生产者不需要知道谁在消费、也不用等它处理完。

参考答案(家长):监控队列深度和消费延迟。

参考答案(家长):按用户 ID 哈希到固定分区。

参考答案(家长):消息先写进同一个数据库事务,再由后台任务投递。

参考答案(家长):一条坏消息可能让整个队列卡死。

op599 课程