全局自动ID生成器设计

最初场景:在无状态分布式系统中,数据库采用分库分表,因此无法依赖各个数据库进行统一的ID管理。

实现目标:简单高效。

技术要求:低,但有技巧。


1.        目的:在分布式或者负载均衡集群中,为了保证全局唯一ID,使用统一的全局ID控制策略,对同一空间进行唯一ID控制;

2.        使用场景:分布式系统的用户注册ID、消息ID等;

3.        设计思想:1)全局唯一ID控制策略,2)使用数据库微小表设计来产生ID,3)各节点应用不过在获取ID时采用区段批量获取、在本地缓存部分ID段,4)模块名无需配置,新的一个模块请求时,自动进行id初始化。

4.        约束:默认情况下,一个系统全局ID的数量应得到控制。

5.        实现中的考虑:获取批量ID时,需要保证事务;同时可以这样考虑,在当前事务中,直接update数据库的相应记录+1000,然后获取最后的值A,则本地可用的ID区间为[A-1000+1, A]



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值