首页
/ 10分钟搭建企业级分布式ID生成系统:Leaf服务极速部署指南

10分钟搭建企业级分布式ID生成系统:Leaf服务极速部署指南

2026-02-05 04:32:35作者:农烁颖Land

还在为分布式系统中的ID冲突而烦恼?还在手动维护自增ID导致性能瓶颈?美团开源的Leaf分布式ID生成服务,让您10分钟内拥有高可用、高性能的ID生成解决方案!

什么是Leaf分布式ID服务?

Leaf是美团点评开源的分布式ID生成服务,支撑了美团内部金融、餐饮、外卖、酒店旅游等多个核心业务。在4核8G虚拟机环境下,通过RPC调用可达近5w/s的QPS,TP999延迟仅1ms!

Leaf提供两种ID生成模式:

  • 号段模式(Segment Mode):基于数据库批量获取ID段,性能极高
  • 雪花算法模式(Snowflake Mode):基于时间戳+机器ID+序列号的分布式ID算法

极速部署四步曲

第一步:环境准备

确保系统已安装:

  • JDK 1.8+
  • Maven 3.0+
  • MySQL 5.7+(如需使用号段模式)
  • Zookeeper(如需使用雪花模式)

第二步:克隆并构建项目

git clone https://gitcode.com/gh_mirrors/leaf3/Leaf
cd Leaf
mvn clean install -DskipTests
cd leaf-server

第三步:数据库初始化

创建Leaf所需数据库表:scripts/leaf_alloc.sql

CREATE DATABASE leaf;
CREATE TABLE `leaf_alloc` (
  `biz_tag` varchar(128) NOT NULL DEFAULT '',
  `max_id` bigint(20) NOT NULL DEFAULT '1',
  `step` int(11) NOT NULL,
  `description` varchar(256) DEFAULT NULL,
  `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`biz_tag`)
) ENGINE=InnoDB;

第四步:配置与启动

编辑配置文件:leaf-server/src/main/resources/leaf.properties

# 号段模式配置
leaf.segment.enable=true
leaf.jdbc.url=jdbc:mysql://localhost:3306/leaf
leaf.jdbc.username=root
leaf.jdbc.password=your_password

# 雪花模式配置  
leaf.snowflake.enable=true
leaf.snowflake.zk.address=localhost:2181
leaf.snowflake.port=8080

启动服务:

# 方式一:Maven启动
mvn spring-boot:run

# 方式二:脚本启动
sh deploy/run.sh

立即测试验证

服务启动后,快速验证ID生成功能:

# 测试号段模式
curl http://localhost:8080/api/segment/get/leaf-segment-test

# 测试雪花模式
curl http://localhost:8080/api/snowflake/get/test

监控与管理

Leaf提供实时监控页面,随时查看ID生成状态:

核心优势解析

号段模式特点

  • 批量获取ID段,减少数据库访问
  • 支持自定义步长(step参数)
  • 高性能,适合高并发场景

雪花模式特点

  • 无需数据库依赖
  • 基于时间戳,趋势递增
  • 支持分布式部署

总结

Leaf作为美团内部久经考验的分布式ID解决方案,为您提供: ✅ 10分钟极速部署
✅ 双模式灵活选择
✅ 5w+/s超高并发
✅ 1ms超低延迟
✅ 开源免费商用

立即部署Leaf,告别ID生成烦恼,专注业务逻辑开发!记得点赞收藏,下期我们将深入解析Leaf的核心架构设计。

登录后查看全文
热门项目推荐
相关项目推荐