> 文档中心 > 分布式ID之滴滴Tinyid配置使用

分布式ID之滴滴Tinyid配置使用

目录

  • 1、下载
  • 2、配置sql数据
  • 3、配置tinyid-server
  • 4、测试tinyid-server
  • 5、tinyid-client打包
  • 6、Tinyid使用

1、下载

将tinyid的源码github来取下来

在github上下载:https://github.com/didi/tinyid

文件结构:
在这里插入图片描述

2、配置sql数据

在下载的tinyid-server源码包中,存在db.sql,将sql导入mysql中:
存在两张表:tiny_id_infotiny_id_token

  • tiny_id_info:用于记录ID的生成记录;
  • tiny_id_token:用于记录请求的token以及biz_type(业务类型)

在这里插入图片描述在这里插入图片描述
注意:sql中的token及biz_test均为测试使用,实际开发中以当前业务为准。

3、配置tinyid-server

1、修改mysql版本

在下载的源码中,使用的mysql为5.x,如果要用8.x,需要修改xml文件,下载对应版本:

 <dependency>     <groupId>mysql</groupId>     <artifactId>mysql-connector-java</artifactId>     <version>5.1.44</version> </dependency><dependency>     <groupId>mysql</groupId>     <artifactId>mysql-connector-java</artifactId><version>8.0.20</version></dependency>

2、修改配置文件
修改resources/offline|online下的application.properties文件,配置tinyid信息,及sql信息

server.port=9999server.context-path=/tinyidbatch.size.max=100000datasource.tinyid.names=primary#多数据源配置一#datasource.tinyid.names=primary,secondarydatasource.tinyid.type=org.apache.tomcat.jdbc.pool.DataSourcedatasource.tinyid.primary.driver-class-name=com.mysql.jdbc.Driverdatasource.tinyid.primary.url=jdbc:mysql://localhost:3306/tinyid?useUnicode=true&useSSL=false&zeroDateTimeBehavior=convertToNull&characterEncoding=UTF-8&allowMultiQueries=true&serverTimezone=Asia/Shanghaidatasource.tinyid.primary.username=rootdatasource.tinyid.primary.password=lhzlx#多数据源配置二#datasource.tinyid.primary.testOnBorrow=false#datasource.tinyid.primary.maxActive=10#datasource.tinyid.secondary.driver-class-name=com.mysql.jdbc.Driver#datasource.tinyid.secondary.url=jdbc:mysql://localhost:3306/db2?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8#datasource.tinyid.secondary.username=root#datasource.tinyid.secondary.password=123456#datasource.tinyid.secondary.testOnBorrow=false#datasource.tinyid.secondary.maxActive=10

4、测试tinyid-server

tinyid-server为一个springboot项目,直接运行Application即可

测试访问: http://localhost:9999/tinyid/id/nextSegmentIdSimple?token=0f673adf80504e2eaa552f5d791b644c&bizType=test

返回数据: 2900001,2920001,3000001,1,0

只要有数据返回,就代表服务启动成功

5、tinyid-client打包

在IDEA中,将tinyid-client insatll 到本地,生成jar包
在这里插入图片描述

6、Tinyid使用

首先启动 tintId-server ,在需要使用ID的项目中,引入tinyid-clent,引入方式有两种:
1、pom引入

方式一:
需要先通过mvn命令,将jar打包到m2仓库,再通过maven坐标引入:

<dependency>     <groupId>com.xiaoju.uemc.tinyid</groupId>     <artifactId>tinyid-client</artifactId>     <version>0.1.0-SNAPSHOT</version> </dependency>

方式二:
或者将tinyid-client源码中package得到jar包拷贝到SpringBootresources下的lib文件夹下,再通过maven坐标引入,这种方式可以避免其他人使用时进行tinyid-clent的编译,如图:
分布式ID之滴滴Tinyid配置使用

pom:

 <dependency>     <groupId>com.xiaoju.uemc.tinyid</groupId>     <artifactId>tinyid-client</artifactId>     <version>0.1.0-SNAPSHOT</version>     <scope>system</scope>     <systemPath>${project.basedir}/src/main/resources/lib/tinyid-client-0.1.0-SNAPSHOT.jar</systemPath> </dependency>

2、配置tinyid_client.properties:

在项目的resources下创建文件tinyid_client.properties

#配置server端请求地址及tokentinyid.server=127.0.0.1:9999tinyid.token=0f673adf80504e2eaa552f5d791b644c

分布式ID之滴滴Tinyid配置使用

3、使用
执行下列代码,成功打印Id即搭建完成

public class IdTest {    public static void main(String[] args) { tinyid();    }    private static Long tinyid() { Long id = TinyId.nextId("test"); System.out.println(id); return id;    }}