分布式 ID 生成

共 17 题
#

1. Leaf 的号段(Segment)模式与双 buffer

A 当前段耗尽前后台预取下一段,避免取号等待数据库 ✓ 正确答案
B 让 ID 更短
C 增加号码的随机性
D 减少数据库存储量
#

2. 分布式 ID 与分库分表键的协作

A ID 的生成与分片路由策略保持一致,保证同一数据落到同一张表 ✓ 正确答案
B ID 必须完全随机
C ID 越短越好
D ID 必须包含时间戳
#

3. 分布式 ID 在日志/链路追踪的应用

A SpanId
B TraceId ✓ 正确答案
C sequence
D workerId
#

4. Leaf-Snowflake 的 ZooKeeper 强依赖与弱化

A 启动时若 ZK 不可用则使用本地缓存的 workerId 恢复 ✓ 正确答案
B 完全移除 workerId
C 用随机数代替 workerId
D 改用数据库分配
#

5. Leaf-Snowflake 的 workerId 分配(ZK/DB)

A 完全随机分配
B 通过 ZooKeeper 临时顺序节点自动分配 ✓ 正确答案
C 使用当前时间戳作为 workerId
D 不需要 workerId
#

6. Leaf(美团)的 Segment 模式与 Snowflake 模式

A ID 严格连续有序
B 需要时钟同步
C 不依赖数据库,吞吐高 ✓ 正确答案
D 依赖 ZK 分配
#

7. Snowflake 时钟回拨(NTP 调整)的解决方案

A 继续用当前时间生成,接受可能重复
B 随机生成一个 ID
C 忽略回拨
D 若回拨较小则等待时钟追上,若过大则抛异常停止生成 ✓ 正确答案
#

8. Snowflake 的 41 位时间戳与 69 年可用

A 约 10 年
B 约 69 年 ✓ 正确答案
C 约 1000 年
D 无上限
#

9. Snowflake 的 sequence 位与 QPS 上限

A 1024
B 65536
C 4096 ✓ 正确答案
D 无限
#

10. Snowflake 的二进制位分配(1+41+10+12)

A 128
B 4096
C 65536
D 1024 ✓ 正确答案
#

11. Snowflake 的机器 ID 分配策略

A 手工静态配置
B 从 ZooKeeper 等中心化服务动态分配 ✓ 正确答案
C 使用随机数
D 使用 MAC 地址
#

12. Snowflake(雪花)算法的工作原理

A 时间戳
B 机器号
C 序列号 ✓ 正确答案
D 符号位
#

13. TinyID 的号段预加载与异步分发

A 增加 ID 随机性
B 在号段耗尽前后台预取下一段,避免取号等待数据库 ✓ 正确答案
C 减少 ID 长度
D 需要数据库实时参与每次取号
#

14. TinyID(滴滴)的号段模式

A 在客户端本地缓存中分配 ✓ 正确答案
B 每次请求都访问数据库
C 在服务端每次实时分配
D 在消息队列中分配
#

15. UUID(v1/v4/v7)的工程取舍

A v1
B v7 ✓ 正确答案
C v4
D v3
#

16. com.github.f4b6a3:uuid-creator 与 UUID v7

A UuidCreator.getRandom()
B UuidCreator.getTimeOrdered() ✓ 正确答案
C UuidCreator.getTimeBased()
D UuidCreator.getNameBased()
#

17. sonyflake(Sony)与 Snowflake 的差异

A
B 10 毫秒 ✓ 正确答案
C 纳秒
D 分钟