Leaf分布式ID生成服务安装与配置完全指南

Leaf分布式ID生成服务安装与配置完全指南

Leaf Distributed ID Generate Service Leaf 项目地址: 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 Leaf 项目地址: https://gitcode.com/gh_mirrors/leaf3/Leaf

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

明为海

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值