基于百度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

创建时间

修改时间

}

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值