其他分享
首页 > 其他分享> > 基于百度ID生成器二次开发方案

基于百度ID生成器二次开发方案

作者:互联网

背景

百度开源的UidGenerator,比较适合我们交易的应用场景,但并不能直接拿来用,因为我们交易并不是使用spring体系,另外也还有其它需求,因此需要做一些二次开发

目标

1、提供框架无关的工具包,UidGenerator依赖Spring

2、提供原数据获取接口,通过id查询id是由哪个机房,哪个国家生成的等

架构

 

主mysql:提供id元数据的管理,workId 通过mysql表自增生成,机房、地区等元数据存储到mysql表

备mysql:采用半同步复制同步数据,提供主备自动切换的能力,提高可用性

ID元数据服务:UidGenerator本身并没有这个服务,引入这个服务是解决跨机房网络隔离连接不上mysql的问题

ID生成器工具包:应用服务通过ID生成器工具包里的工具类生成ID和获取元信息

接口设计

1、获取唯一ID

UidGenerator uidGenerator =new UidGenerator();

uidGenerator.genId()

2、获取元数据

UidGenerator uidGenerator =new UidGenerator();

IdMetadata metadata =uidGenerator.getIdMetadata()

IdMetadata{

地区

Idc机房

发布环境(dev,test,pr)

业务环境(lizhi,pp…)

本地IP

}

表设计

Id_metadata{

ID(主键自增)

地区

Idc机房

发布环境(dev,test,pr)

业务环境(lizhi,pp…)

本地IP

创建时间

修改时间

}

 

 

 

 

 

标签:mysql,生成器,机房,uidGenerator,二次开发,UidGenerator,ID
来源: https://blog.csdn.net/chenyun19890626/article/details/116403582