概述
1.雪花ID的用途
雪花算法用来在分布式集群中生成唯一ID。即在需要在多台机器需要分别生成ID,又要保证生成的ID是唯一的、趋势递增的情况下使用的一种算法。
2.雪花ID的组成
雪花算法生成一个64位的ID,最高位固定为0,之后41位为时间戳,在之后的10位为机器编号,最后的12位为序号。
1.1为什么只可以使用69年
41位的时间戳即2^41毫秒,换算一下是69年。时间戳原本也是一个64位的数字,这里取了其低41位。从当前时间开始,到低41位开始出现重复需要69年。这就是为什么说雪花算法最多可以使用69年的原因。
1.2支持的机器个数
机器编号为10位,2^10=1024,所以雪花算法最多支持1024个机器。
1.3每台机器上可以生成的ID数
最后12位是一台机器上一毫秒可以产生的序号数,为212=4096个。即一台机器上一毫秒最多生成4096个不同的ID。而对于整个集群来说,如果1024个机器全部部署,最多是222个ID约419万。
3.雪花算法中ID生成步骤
1.获取时间戳
2.判断当前时间戳和上一次生成ID时的时间戳是否一致,如果一致则序号递增;
3.如果不一致,则序号从0开始。
4.时间戳左移22位,机器ID左移12位,序号左移0位,三者相或就是雪花ID。
4.为什么叫雪花ID
因为世界上不存在完全相同的两片雪花,而这里也不存在完全相同的两个雪花ID。
最后
以上就是哭泣心锁为你收集整理的分布式之雪花算法的全部内容,希望文章能够帮你解决分布式之雪花算法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复