美团开源分布式ID服务Leaf简单使用

原创不易,转载请注明出处

文章目录


简单介绍

leaf是美团技术团队开源的分布式id生成服务。
leaf支持号段模式和snowflake模式id生成。
github地址:https://github.com/Meituan-Dianping/Leaf

配置

先去github地址:https://github.com/Meituan-Dianping/Leaf 将项目源代码clone下来
项目是使用springboot写的。需要到leaf-server子项目中resource目录下面leaf.properties配置
上面有提到leaf支持号段模式和snowflake模式id生成,这两种
介绍下号段模式的配置
由于号段模式基于mysql+号段实现,需要配置mysql连接信息

配置项 含义 默认值
leaf.name leaf 服务名
leaf.segment.enable 是否开启号段模式 false
leaf.jdbc.url mysql 库地址
leaf.jdbc.username mysql 用户名
leaf.jdbc.password mysql 密码

同时需要建立一个mysql表

DROP TABLE IF EXISTS `leaf_alloc`;

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 ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`biz_tag`)
) ENGINE=InnoDB;

介绍下snowflake模式的配置
snowflake基于snowflake算法优化+zk实现,需要配置zk信息

配置项 含义 默认值
leaf.snowflake.enable 是否开启snowflake模式 false
leaf.snowflake.zk.address snowflake模式下的zk地址
leaf.snowflake.port snowflake模式下的服务注册端口

部署

如果是本地学习测试的话,完全可以导入到idea,然后直接main方法启动就可以了。

如果是生产级别使用的话

打包服务

cd leaf
mvn clean install -DskipTests
cd leaf-server

运行服务
mvn方式

mvn spring-boot:run

脚本方式

sh deploy/run.sh

测试
号段模式
美团开源分布式ID服务Leaf简单使用

snowflake模式
美团开源分布式ID服务Leaf简单使用

总结

本文主要介绍了分布式ID服务Leaf的配置与安装,关于号段模式与snowflake模式实现原理我们后面会有介绍。

上一篇:全局唯一ID生成方案


下一篇:Java实现雪花算法(SnowFlake)