Leaf分布式ID生成服务安装与配置完全指南
Leaf Distributed ID Generate Service 项目地址: https://gitcode.com/gh_mirrors/leaf3/Leaf
基础介绍 Leaf是由美团点评团队开发的分布式ID生成服务。该服务旨在解决行业中的ID生成需求,支持多种策略如Redis、UUID、Snowflake等。Leaf已被应用于美团内部的多个业务线中,包括财务、餐饮、外卖、酒店旅行、猫眼电影等。基于4C8G虚拟机,通过公司RPC方法压测,其QPS可达近5万次/秒,TP999延时1毫秒。
关键技术与框架
- 核心算法:集成Snowflake算法(来自Twitter)用于生成时间戳+工作节点ID的唯一长整型ID。
- 服务端实现:基于Spring Boot提供HTTP服务,便于快速部署和调用。
- 数据库支持:在Segment模式下需MySQL来存储和管理ID分配信息。
- 配置管理:利用ZooKeeper进行Snowflake模式下的服务发现和配置同步。
- 高度可扩展:通过RPC方式集成,提升性能并支持定制化封装。
环境准备与安装步骤
环境需求
- Java环境:确保JDK 1.8或更高版本已安装。
- Maven:用于构建项目。
- MySQL:Segment模式需要MySQL数据库。
- ZooKeeper(可选):Snowflake模式下的协调服务。
步骤一:克隆项目
git clone https://github.com/Meituan-Dianping/Leaf.git
步骤二:构建项目
进入项目目录,跳过测试构建项目。
cd Leaf
mvn clean install -DskipTests
步骤三:配置数据库(仅Segment模式)
- 在MySQL中创建数据库
leaf
。 - 运行SQL脚本创建表
leaf_alloc
(脚本见项目文档)。 - 配置
leaf-server/src/main/resources/leaf.properties
的数据库连接参数。
步骤四:配置Snowflake模式(如果需要)
- 编辑
leaf.properties
,设置leaf.snowflake.zk.address
为您ZooKeeper集群地址。 - 同样在此文件中启用Snowflake模式:
leaf.snowflake.enable=true
。
步骤五:启动服务
Segment模式
cd leaf-server
mvn spring-boot:run
Snowflake模式
确保ZooKeeper运行,然后同样使用上述命令启动。
步骤六:测试ID生成
- Segment模式
curl http://localhost:8080/api/segment/get/leaf-segment-test
- Snowflake模式
curl http://localhost:8080/api/snowflake/get/test
注意事项
- 访问控制和服务安全:在生产环境中,考虑加入API Gateway或SSL加密。
- 监控与管理:访问
http://localhost:8080/cache
查看Segment模式下的状态页面。 - 调优与扩展:根据实际负载调整数据库配置,以及考虑将服务部署在高性能服务器或容器内。
至此,您已经完成了Leaf项目的安装与基本配置,可以开始在您的应用中集成分布式ID生成功能了。记得根据具体应用场景选择合适的ID生成模式,并进行相应的配置与测试。祝您使用愉快!
Leaf Distributed ID Generate Service 项目地址: https://gitcode.com/gh_mirrors/leaf3/Leaf