分布式发号器

该博客探讨了在分布式环境中如何设计一个发号器,确保生成的序列号全局唯一、有序、可扩展,并在某些情况下支持生成无规则序列号。同时,系统允许业务方自定义序列号混淆策略,以满足不同需求。
摘要由CSDN通过智能技术生成

1、分布式环境下,保证每个序列号(sequence)是全系统唯一的;

2、序列号可排序,满足单调递增的规律;

3、特定场景下,能生成无规则(或者看不出规则)的序列号;

4、生成的序列号尽量短

5、序列号可进行二次混淆,提供可扩展的interface,业务方自定义实现。

 

方案 介绍
单机数据库

主键ID用bigint类型,并且设置为自增、无符号

优点:(1)能够保证唯一性; (2)能够保证递增性; (3)步长固定;

缺点:不支持数据库分不分表,性能低

UUID

UUID是在本地生成的,所以相对性能较高、时延低、扩展性高,完全不受分库分表的影响!

缺点:无法保证趋势递增;用32位字符串表示,占用数据库空间较大;建立索引查询效率低;可能会出现UUID重复的情况

ID分组

1个数据库变成4个库,每个数据库设置不同的auto_increment初始值init,以及相同的增长步长step,以保证每个

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值