UidGenerator
百度开源UidGenerator是Java实现的, 基于Snowflake算法的唯一ID生成器。UidGenerator以组件形式工作在应用项目中, 支持自定义workerId位数和初始化策略, 从而适用于docker等虚拟化环境下实例自动重启、漂移等场景。 在实现上, UidGenerator通过借用未来时间来解决sequence天然存在的并发限制; 采用RingBuffer来缓存已生成的UID, 并行化UID的生产和消费, 同时对CacheLine补齐,避免了由RingBuffer带来的硬件级「伪共享」问题. 最终单机QPS可达600万。
Leaf—美团点评分布式ID生成系统
Leaf在美团点评公司内部服务包含金融、支付交易、餐饮、外卖、酒店旅游、猫眼电影等众多业务线。目前Leaf的性能在4C8G的机器上QPS能压测到近5w/s,TP999 1ms,已经能够满足大部分的业务的需求。
微信序列号生成器架构设计及演变
递增但不连续的数字序列解决方案
tinyid 滴滴的分布式id生成系统
- 优点:高可用
- 缺点:趋势递增,当作为主键在MySQL的InnoDB做插入操作时会导致索引分裂次数增加,无法优化,影响插入性能