分布式系统中的唯一标识应如何兼顾唯一性、趋势递增与可用性
简答题中等831 次浏览
参考答案与解析
# 核心结论
分布式唯一标识不存在脱离业务约束的最优方案。设计时需要同时考虑唯一范围、生成吞吐、是否允许概率碰撞、是否要求趋势递增、索引局部性、离线生成能力、时钟故障以及信息泄露风险。数据库自增标识简单且通常严格递增,但依赖中心节点;随机标识允许各节点独立生成,但占用空间较大、索引局部性较差;时间戳、节点号和序列号组合的方案能兼顾高吞吐、全局唯一与趋势递增,但必须正确处理时钟回拨、节点号冲突和序列耗尽。
需要特别区分“唯一”“趋势递增”“严格递增”和“连续”。技术主键通常只要求在规定范围内不重复,趋势递增表示新生成的值大体更大,但不保证跨节点严格有序,更不保证中间没有空洞。财务票据等要求连续编号的场景应建立独立的业务编号、审
