现如今,随着互联网业务需求的爆发式增长,分布式开发已成为常态。在分布式系统中,ID 生成服务是不可缺少的基础构件。ID,作为单个数据对象的唯一标识,一般要求具备全局唯一性;同时,在高并发场景下,对 ID 生成所带来的耗时问题也十分敏感;另外,时钟不同步、闰秒、时钟回拨等时间问题更是棘手。
业界已经提出了数种优秀的分布式 ID 解决方案和实现,各有不同的优缺点。美团点评,也开源了其使用的分布式 ID 服务系统:Leaf。这个源于名言“世界上没有两片完全相同的树叶”的系统,提供了高可靠、低延迟、全局唯一的 ID 生成,支撑起了众多的业务线。
![86baa394ed8efee537407be537a9032f.png](https://img-blog.csdnimg.cn/img_convert/86baa394ed8efee537407be537a9032f.png)
Leaf 分布式ID生成
简介
Leaf,是 Meituan-Dianping(美团点评)在 Github 上开源的分布式 ID 生成服务,项目位于 https://github.com/Meituan-Dianping/Leaf,目前版本为 1.0.1。Leaf 在现有的分布式 ID 生成方案的基础上进行了优化,实现了两种模式方案:Left-segment 和 Leaf-snowflake,实现了具有:全局唯一性、趋势递增、单调递增、信息安全等不同的 ID 生成需求,并提供了缓存优化、高可容灾、和规避时钟问题等特性,能够满足绝大部分的分布式 ID 生成需求。
![c333c929645d02eac58c1f2a0584272f.png](https://img-blog.csdnimg.cn/img_convert/c333c929645d02eac58c1f2a0584272f.png)
Leaf 项目
安装
Leaf 使用 Java 开发,使用 Spring Boot 框架启动一个 HTTP 服务来进行 ID 生成