雪花算法这一在分布式架构中很常见的玩意,但一般也不需要怎么去深入了解,一方面一般个人项目用不到分布式之类的大型架构,另一方面,就算要用到,市面上很多ID生成器也帮我们完成了这项工作。
分布式ID的特点
全局唯一性
不能出现有重复的ID标识,这是基本要求。
递增性
确保生成ID对于用户或业务是递增的。
高可用性
确保任何时候都能生成正确的ID。
高性能性
在高并发的环境下依然表现良好。
分布式ID的常见解决方案
UUID
Java自带的生成一串唯一随机36位字符串(32个字符串+4个“-”)的算法。它可以保证唯一性,且据说够用N亿年,但是其业务可读性差,无法有序递增。
SnowFlake
今天的主角雪花算法,它是Twitter开源的由64位整数组成分布式ID,性能较高,并且在单机上递增。 具体参考:
https:// github.com/twitter-arch ive/snowflake
UidGenerator
UidGenerator是百度开源的分布式ID生成器,其基于雪花算法实现。 具体参考:

本文介绍了分布式ID的重要特点:全局唯一性、递增性、高可用性和高性能性,并探讨了UUID、SnowFlake、UidGenerator和Leaf这四种常见的解决方案。重点讲解了Twitter的SnowFlake算法,详细阐述了64位ID的组成部分,包括时间戳、工作机器ID和序列号。文章还提及了雪花算法的Java和Python实现,为分布式系统中的ID生成提供参考。
最低0.47元/天 解锁文章
4011

被折叠的 条评论
为什么被折叠?



