来源:https://lilinchao.com/archives/1226.html
一、UidGenerator 是什么
UidGenerator 是百度开源的一款分布式高性能的唯一 ID 生成器,是基于
snowflake 模型的一种 ID 生成器
二、UidGenerator 的优势
1. 解决了时钟回调的问题
2. 使用 ringbuffer,无锁进行 id 的生产与消费,速度非常快
3. 适用于多线程,不会有单线程瓶颈
三、整合
本次通过 SpringBoot2.x 和 MyBatis 对百度 UidGenerator 进行整合。
3.1 UidGenerator 引入
一般使用两种方式引入 UidGenerator:
1)从官网下载源码作为自己项目的一个 Module 引入到项目中
官网地址:https://github.com/baidu/uid-
generator/blob/master/README.zh_cn.md
2)互联网 jar 包引入(本文采取的是该种方式)
因为 UidGenerator 自带引入了 mybatis,和自己项目有冲突的可以进行排除
<dependency>
<groupId>com.xfvape.uid</groupId>
<artifactId>uid-generator</artifactId>
<version>0.0.4-RELEASE</version>
</dependency>
排除冲突依赖
uid-generator 中依赖了 logback 和 mybatis。一般在项目搭建过程中,
springboot 中已经有了 logback 依赖,mybatis 会作为单独的依赖引入。如果
版本和 uid-generator 中的依赖不一致的话,就会导致冲突。
排除冲突的依赖如下:
<dependency>
<groupId>com.xfvape.uid</groupId>