美团开源分布式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
测试
号段模式

snowflake模式

总结
本文主要介绍了分布式ID服务Leaf的配置与安装,关于号段模式与snowflake模式实现原理我们后面会有介绍。
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
