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

导读:本篇文章讲解 分布式ID之滴滴Tinyid配置使用,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

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>	
		<!--将5.1.44修改为8.x-->
		<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=9999
server.context-path=/tinyid
batch.size.max=100000
datasource.tinyid.names=primary
#多数据源配置一
#datasource.tinyid.names=primary,secondary
datasource.tinyid.type=org.apache.tomcat.jdbc.pool.DataSource
datasource.tinyid.primary.driver-class-name=com.mysql.jdbc.Driver
datasource.tinyid.primary.url=jdbc:mysql://localhost:3306/tinyid?useUnicode=true&useSSL=false&zeroDateTimeBehavior=convertToNull&characterEncoding=UTF-8&allowMultiQueries=true&serverTimezone=Asia/Shanghai
datasource.tinyid.primary.username=root
datasource.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的编译,如图:
在这里插入图片描述

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端请求地址及token
tinyid.server=127.0.0.1:9999
tinyid.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;
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/18097.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!