关于分布式唯一ID生成算法

应用系统为了满足高并发以及高可用的要求,经常会使用多台服务节点组成服务集群提供对外服务,在业务开发过程中我们需要生成一些全局唯一ID,比如会员ID或者订单ID,那么如何能够保证不同的服务节点生成的唯一ID不会冲突,最常见的有两种方式:

方法一:UUID

UUID是通用唯一识别码 (Universally Unique Identifier),在其他语言中也叫GUID,可以生成一个长度32位的全局唯一识别码。

可以通过如下代码自动生成

结果=046b6c7f-0b8a-43b9-b35d-6489e6daee91

 

有时候为了节省空间资源,我们会删除”-”

结果=046b6c7f0b8a43b9b35d6489e6daee91

 

虽然UUID可以保证全局唯一,但是是无序的,入库时性能会比较差,因为关系型数据库大部分都是B+树的结构,无序可能会造成节点数据不饱和以及频繁产生分裂,导致降低数据库插入性能。

你可能感兴趣的:(架构设计,算法,数据库,分布式,分布式计算)