分布式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_info
与tiny_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
包拷贝到SpringBoot
的resources
下的lib
文件夹下,再通过maven坐标引入,这种方式可以避免其他人使用时进行tinyid-clent
的编译,如图:
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
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; }}