产品java 设计软件架构

数据库 ID 生成方案:美团 Leaf

2019-11-30  本文已影响0人  happyJared

在美团早期,有的业务直接通过 DB 自增的方式生成 ID,有的业务通过 Redis 缓存来生成 ID,也有的业务直接用 UUID 这种方式来生成 ID。以上的方式各自有各自的问题,因此美团实现了一套分布式 ID 生成服务来满足需求。具体 Leaf 设计文档见: Leaf 美团分布式 ID 生成服务

美团的 Leaf 也是一个分布式 ID 生成框架。它非常全面,即支持号段模式,也支持 Snowflake 模式。

Leaf 中的 Snowflake 模式和原始 Snowflake 算法的不同点,也主要在 workId 的生成,Leaf 中 workId 是基于 ZooKeeper 的顺序 Id 来生成的,每个应用在使用 Leaf-snowflake 时,在启动时都会在 Zookeeper中生成一个顺序 Id,相当于一台机器对应一个顺序节点,也就是一个 workId。

最后,附上 Github 地址:美团 Leaf

上一篇下一篇

猜你喜欢

热点阅读