一、简介
百度UidGenerator是一个分布式数据库id生成器,本文在SpringBoot项目快速优雅集成百度UidGenerator,使用的是 uid-generator-spring-boot-starter
,它是基于百度UidGenerator,在此基础上做了部分改进。
- 改造为spring-boot-starter的形式,不用部署为分布式,直接建表、在项目中引入,即可使用
- 针对时钟回拨,提供了修正选项(默认启用,可通过配置关闭),小于阈值直接休眠,大于阈值更改机器号
- 对机器id用尽提供了复用策略:取余
- 解除id位数限制,由“必须64位”改为“不大于64位”,可根据需要获取更短id
二、集成步骤
1.在项目使用的数据库里,执行WORKER_NODE表脚本
DROP TABLE IF EXISTS WORKER_NODE;
CREATE TABLE WORKER_NODE
(
ID BIGINT NOT NULL AUTO_INCREMENT COMMENT 'auto increment id',
HOST_NAME VARCHAR(64) NOT NULL COMMENT 'host name',
PORT VARCHAR(64) NOT NULL COMMENT 'port',
TYPE INT NOT NULL COMMENT 'node type: CONTAINER(1), ACTUAL(2), FAKE(3)',
LAUNCH_DATE DATE NOT NULL CO