https://github.com/lookingatstarts/easyIdGenerator
生成全局唯一ID
https://github.com/lookingatstarts/easyIdGenerator
database global-unique-id id-generator snowflake zk
Last synced: 8 days ago
JSON representation
生成全局唯一ID
- Host: GitHub
- URL: https://github.com/lookingatstarts/easyIdGenerator
- Owner: lookingatstarts
- Created: 2020-05-28T16:34:19.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2022-06-21T03:34:06.000Z (about 4 years ago)
- Last Synced: 2023-03-04T06:26:33.865Z (over 3 years ago)
- Topics: database, global-unique-id, id-generator, snowflake, zk
- Language: Java
- Homepage:
- Size: 1.01 MB
- Stars: 63
- Watchers: 2
- Forks: 10
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-java - EasyIdGenerator
README
# EasyIdGenerator 生成全局唯一id
- 递增性
插入数据库能够保证数据顺序写入,不会页分裂,磁盘利用率下降
- 安全
id不能包含敏感信息,不能被暴露递增规律
## 支持两种方式
- 号段方式:利用mysql的自增功能
```
easy-id-generator:
segment:
enable: false/true # 关闭/开启 mysql自增功能
db-list: ["db1","db2"] # 数据库配置:可以支持多个库,数据库配置文件名字按dbXXX格式,eg:db1,db2,db3....
fetch-segment-retry-times: 3 # 从数据库获取号段失败重试次数
```
- 雪花算法:workId是通过zk生产的
```
easy-id-generator:
snowflake:
enable: false/true # 关闭/开启雪花算法生成id
zk:
connection-string: 127.0.0.1:2181 # ip:port,ip2:prort zk链接信息
load-worker-id-from-file-when-zk-down: true # 当zk不可访问时,从本地文件中读取之前备份的workerId
```
## 环境配置
- 下载docker
- cmd命令行,cd到docker-compose.yml所在目录,执行docker-compose up -d
## 号段方式
- 在数据库执行schema.sql脚本
- 通过SegmentEasyIdController控制器,获取id
## 雪花算法方式
- 通过SnowflakeEasyIdController控制器,获取id
## easy-id-generator-spring-boot-starter
在starter分支
## 作者邮箱
- zbbpoplar@163.com