两种开源分布式主键生成器简介

1.UidGenerator–百度开源分布式id生成器
UidGenerator使用Java实现,基于Snowflake算法的唯一ID生成器。
gitee地址:https://gitee.com/mirrors/UidGenerator。

UidGenerator在每次启动时,会把机器的host_name和port插入表中,把新纪录的id作为本实例的workerId,以此来保证每个实例在任何时间workerId的唯一性。

UidGenerator提供了DefaultUidGenerator和CachedUidGenerator两种id生成器。DefaultUidGenerator通过使用未来时间,解决了Snowflake算法sequence天然存在的并发限制,及在出现时钟回拨时产生重复id的问题。
CachedUidGenerator使用RingBuffer数组缓存预先生成Uid,并行化Uid的生产和消费,最终使单机QPS可达600万,适用于高性能场景。

2.Leaf–美团点评分布式ID生成器
Leaf 使用Java实现,提供两种生成ID的方式(Snowflake模式和号段模式),可以通过修改配置选择ID的生成方式。
Snowflake模式,算法取自twitter开源的snowflake算法。
号段模式,需要依赖数据库建立DB表。
GitHub地址:https://github.com/Meituan-Dianping/Leaf。
官方文档地址:https://tech.meituan.com/2017/04/21/mt-leaf.html。

上一篇:CF932F Escape Through Leaf(DP,斜率优化)


下一篇:LeetCode - 129. Sum Root to Leaf Numbers