1.官网
美团官方介绍地址:地址
美团github地址 :地址
2. 大佬剖析源码地址
号段模式:地址
snowflake模式: 地址
3. 我为什么还要写一个呢?
- 官网给你github地址里面有很多坑,不建议看
- 大佬的github地址和官网的一样存在一个问题?
MySQL8.0不支持
因为MySQL是基于5.7搭建的,所以如果你本地MySQL版本是8.0以后的都会有问题
3.1 MySQL8.0支持
- pom文件改MySQL版本号为8.0.14
<mysql-connector-java.version>8.0.14</mysql-connector-java.version>
- leaf.properties做下面修改
leaf.name=com.sankuai.leaf.opensource.test
leaf.segment.enable=true
leaf.jdbc.url=jdbc:mysql:
leaf.jdbc.username=root
leaf.jdbc.driver-class-name=com.mysql.cj.jdbc.Driver
leaf.jdbc.password=123456
leaf.snowflake.enable=true
leaf.snowflake.zk.address=localhost
leaf.snowflake.port=2181
- 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";
}
com.sankuai.inf.leaf.server.SegmentService
类下面添加driver
支持
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其它的参考大佬的博客,里面讲的很详细