1 概述
美团点评(Leaf)分布式主键支持数据库号段模式(segment mode)和雪花算法模式(Snowflake mode),可以根据不同业务场景灵活切换。
2 下载源码
Meituan-Dianping master分支
3 修改源码
3.1 项目结构
3.2 修改pom
mysql数据库版本支持8.X版本,需要升级leaf-server和leaf-core模块的mysql-connector以及druid的版本,升级版本号如下:
<mysql-connector-java.version>8.0.13</mysql-connector-java.version>
<druid.version>1.1.10</druid.version>
4 号段模式(Segment mode)
4.1 修改leaf-server配置文件leaf.properties
# Segment mode
leaf.name=com.sankuai.leaf.opensource.test
leaf.segment.enable=true
leaf.jdbc.url=jdbc:mysql://localhost:3306/meituan-leaf?autoReconnect=true&useUnicode=true&characterEncoding=utf-8&&zeroDateTimeBehavior=CONVERT_TO_NULL&&serverTimezone=GMT%2B8
leaf.jdbc.username=root
leaf.jdbc.password=123456
leaf.snowflake.enable=false
4.2 新建MySQL数据库和表
数据库:meituan-leaf
表:leaf_alloc
DROP TABLE IF EXISTS `leaf_alloc`;
CREATE TABLE `leaf_alloc` (
`biz_tag` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '' COMMENT '不同业务,用biz_tag字段来隔离,如果需要扩容时,对biz_tag分库分表即可'