分布式系统——分布式唯一ID生成

M君 16天前 ⋅ 68 阅读

背景

在分布式系统之前,数据的唯一ID是通过数据库的自增字段,或者是使用uuid来生成的。随着系统向着分布式演进,数据的唯一ID的生成不能再根据数据库的自增字段生成(因为可能涉及到多个数据库),当然仍然可以通过uuid来作为唯一ID,但是uuid的位数太长生成起来麻烦,所以说需要一种高效的分布式唯一Id的生成方法。

关键技术

为了高效的生成分布式的唯一ID,可以使用预分配的方式。在整个系统中有一个专门的服务生成分布式的唯一ID,可以通过类似于分库分表的方式对唯一ID进行维度的划分,并根据预分配段的机制减少频繁的ID请求,并通过步长+随机变化区间的方式来避免请求的并发。

总结下来,分布式唯一ID的几个关键注意点是

  • 根据服务的进行划分,不同应用的服务分布式id可以重复,同一个应用的分布式id不可重复
  • 预分配的区间,合理的规划预分配的区间。
  • 随机的变量,可以避免请求的并发的到来,避免请求的堵塞

总结

分布式系统的唯一id的生成有多种方案,生成方式并不复杂,google一下可以找到很多方式。

参考

http://mysql.taobao.org/monthly/2017/02/01/

http://www.cnblogs.com/haoxinyue/archive/2010/09/16/1828172.html

 


注意:本文归作者所有,未经作者允许,不得转载

全部评论: 0

    我有话说: