您的位置:首页 > 其它

全局自动ID生成器设计

2012-03-08 14:15 309 查看
最初场景:在无状态分布式系统中,数据库采用分库分表,因此无法依赖各个数据库进行统一的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]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: