3.【每日分享】谈谈常用的分布式ID的设计

在分布式开发中,唯一主键的设计非常重要,我们今天来看看分布式ID的常用设计

首先我们先明确一下分布式ID的定义
1.全局唯一,不是单点系统的唯一,而是分布式系统的唯一
2.有序性,通常需要保证生成的ID是有序递增的,比如在数据库中,递增有助于做分区,提高查询效率

典型的方案有很多
-基于数据库自增序列的实现,这种方式优缺点都非常明显,好处是简单好用,但是在扩展性和可靠性方面存在局限性
-基于Twitter早期开源的Snowflake的实现以及相关改动方案,这是目前应用相对广泛的一种方式,整体长度通常是64位(1位标示位+41位时间戳+10位WorkerID+12位序列),通常使用java 的long类型存储

另外Redis、Zookeeper、MongoDB等中间件也都有各种唯一ID解决方案。

你可能感兴趣的:(3.【每日分享】谈谈常用的分布式ID的设计)