基于MySQL8.0美团leaf测试分布式ID生成系统


1.官网

美团官方介绍地址:地址
美团github地址 :地址

2. 大佬剖析源码地址

号段模式:地址
snowflake模式: 地址

3. 我为什么还要写一个呢?

  1. 官网给你github地址里面有很多坑,不建议看
  2. 大佬的github地址和官网的一样存在一个问题?MySQL8.0不支持
    因为MySQL是基于5.7搭建的,所以如果你本地MySQL版本是8.0以后的都会有问题

3.1 MySQL8.0支持

  1. pom文件改MySQL版本号为8.0.14
  <mysql-connector-java.version>8.0.14</mysql-connector-java.version>
  1. leaf.properties做下面修改
leaf.name=com.sankuai.leaf.opensource.test
# 开启号段模式
leaf.segment.enable=true
leaf.jdbc.url=jdbc:mysql://192.168.1.200:3307/leaf?characterEncoding=utf8&serverTimezone=Asia/Shanghai
leaf.jdbc.username=root
leaf.jdbc.driver-class-name=com.mysql.cj.jdbc.Driver
leaf.jdbc.password=123456
# 开启snowflake模式
leaf.snowflake.enable=true
leaf.snowflake.zk.address=localhost
leaf.snowflake.port=2181


  1. Constants类添加driver支持
public class Constants {
    public static final String LEAF_SEGMENT_ENABLE = "leaf.segment.enable";
    public static final String LEAF_JDBC_URL = "leaf.jdbc.url";
    public static final String LEAF_JDBC_USERNAME = "leaf.jdbc.username";
    public static final String LEAF_JDBC_PASSWORD = "leaf.jdbc.password";
    public static final String driver = "leaf.jdbc.driver-class-name";
    public static final String LEAF_SNOWFLAKE_ENABLE = "leaf.snowflake.enable";
    public static final String LEAF_SNOWFLAKE_PORT = "leaf.snowflake.port";
    public static final String LEAF_SNOWFLAKE_ZK_ADDRESS = "leaf.snowflake.zk.address";
}

  1. com.sankuai.inf.leaf.server.SegmentService类下面添加driver支持
  // 2. 创建Druid dataSource
  dataSource = new DruidDataSource();
  dataSource.setUrl(properties.getProperty(Constants.LEAF_JDBC_URL));
  dataSource.setUsername(properties.getProperty(Constants.LEAF_JDBC_USERNAME));
  dataSource.setDriverClassName(properties.getProperty(Constants.driver));
  dataSource.setPassword(properties.getProperty(Constants.LEAF_JDBC_PASSWORD));
  dataSource.init();

3.2其它的参考大佬的博客,里面讲的很详细

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值