月度归档:2026年6月 (53)

连载中 10/16

开源选型:从 Leaf 到 UidGenerator

原理都懂了,落地别手搓。美团 Leaf 的双模式、百度 UidGenerator 的 RingBuffer、滴滴 Tinyid 的 HTTP+SDK,三大开源发号器横评:发号模式、依赖、吞吐、时钟依赖一张表看穿,再送一棵选型决策树。

#分布式ID#开源发号器#Leaf#UidGenerator#Tinyid
2026-06-10 · 4785 阅读 · 0 评论 · 0 赞
连载中 9/16

Redis 发号器:简单背后的两本账

短链、券码这类小场景犯不着养发号服务,Redis INCR 一行搞定。单线程原子自增是真省心,但两本账要算清:持久化回档号会跳,主从切换号会回——号有洞能忍,号有重不能忍。

#分布式ID#Redis发号#INCR#持久化#主从切换
2026-06-09 · 1730 阅读 · 0 评论 · 0 赞
连载中 8/16

workerID 之争:谁来给机器发身份证

镜像克隆忘改配置文件,两台节点共用机器号 3,上线半年后突然撞号。手工配置靠不住,DB 分配、ZooKeeper 顺序节点、Redis 自增、K8s 有序命名四条路各有价——身份证发放制度决定雪花的底座稳不稳。

#分布式ID#workerID#机器号#ZooKeeper#StatefulSet
2026-06-09 · 4980 阅读 · 0 评论 · 0 赞
连载中 7/16

回拨治理三招:等待、拒绝与扩展位

回拨不可根除,只能管理。毫秒级自旋等待、秒级拒绝换节点、大步回拨切备用机器号——三招按幅度组合成流程图,再配上 NTP 分批校时的运维预防,死穴变成可控风险。

#分布式ID#时钟回拨#自旋等待#备用机器号#Leaf
2026-06-08 · 5862 阅读 · 0 评论 · 0 赞
连载中 6/16

时钟回拨:雪花的第一死穴

运维批量 NTP 校时,20 台发号节点同时回拨一秒,撞号订单告警响成一片。回拨为什么能造重复 ID、怎么检测、幅度不同怎么分级处理——死穴的病理报告先拍在桌上,药方下篇开。

#分布式ID#时钟回拨#NTP#雪花算法#撞号
2026-06-08 · 5372 阅读 · 0 评论 · 0 赞
连载中 5/16

雪花算法:64 位里的精密钟表

发号服务再稳也是单点,IoT 埋点每秒百万号谁扛得住?雪花算法把 64 位拆成时间戳、机器号、序列号三段,每个节点本地发号,单机理论上限每秒四千万。拆开看每一 bit 的设计意图与生成流程。

#分布式ID#雪花算法#Snowflake#时间戳#位运算
2026-06-07 · 3446 阅读 · 0 评论 · 0 赞
连载中 4/16

号段进阶:双 buffer 与异步预加载

号段模式上线,压测却暴露 RT 毛刺:段用尽那一刻,请求线程同步去 DB 领号,DB 一抖全站排队。双 buffer 登场——当前段配备用段,异步预加载无缝切换,再配动态 step 把 DB 故障的容灾时间拉到分钟级。

#分布式ID#双buffer#异步预加载#动态step#Leaf
2026-06-07 · 6416 阅读 · 0 评论 · 0 赞
连载中 3/16

步长与号段:DB 发号的第一正解

从第 1 篇的步长方案升级:独立发号表、一次领一段、内存里慢慢发。号段模式趋势递增、ID 短小、DB 压力降为几百分之一——但号段有洞、主从切换可能号回跳,先立正解再立防线。

#分布式ID#号段模式#步长#发号器#Leaf
2026-06-06 · 6080 阅读 · 0 评论 · 0 赞
连载中 2/16

UUID:最顺手的瑞士军刀,最差的订单主键

撞车事故后同事提议全员换 UUID:零依赖、本地生成、概率上永不重复。但 128 位的随机串当 InnoDB 主键是三重暴击——无序写翻页、体积撑爆二级索引、排序无意义。v7 和 ULID 能救一半,场景判断才是关键。

#分布式ID#UUID#ULID#主键#页分裂
2026-06-06 · 5534 阅读 · 0 评论 · 0 赞