聊一聊Twitter的雪花算法

什么是Twitter的雪花算法方法?

这是一种在分布式系统中生成唯一ID的解决方案。Twitter在推文、私信、列表等方面使用这种方法。

?ID是唯一且可排序的?ID包含时间信息(按日期排序)?ID适用于64位无符号整数?仅包含数字值

符号位(1位):保留位(始终为0)。这可以为将来的请求保留。它可以潜在地用于使整体数字为正数。

时间戳(41位):以毫秒为单位的纪元时间戳(雪花的默认纪元等于2010年11月04日01:42:54 UTC)

机器ID(10位):可容纳1024台机器

序列号(12位):每台机器上的本地计数器,每次增加1。该数字在每毫秒重置为0。从理论上讲,一台机器每秒最多可以支持4096(212)个新ID。

Twitter雪花算法方法的优缺点

?它长度为64位,是UUID的一半大小?可扩展性强(可容纳1024台机器)?高可用性(每台机器每毫秒可以生成4096个唯一ID)?一些UUID版本不包含时间戳。在这种情况下,Twitter雪花算法具有可排序的优势。?设计需要Zookeeper(缺点)?生成的ID不像UUID那样是随机的。将来的ID可以预测。?41位中可以表示的最大时间戳(约69年)。需要在此之后找到解决方案 🙂

使用注意事项

?Discord使用雪花算法,将其纪元设置为2015年的第一秒。?Instagram使用了格式的修改版本,其中41位用于时间戳,13位用于分片ID,10位用于序列号。?Mastodon的修改格式具有48位的毫秒级时间戳,它使用了UNIX纪元。剩下的16位用于序列数据。

原创文章,作者:小技术君,如若转载,请注明出处:https://www.sudun.com/ask/33967.html

(0)
小技术君的头像小技术君
上一篇 2024年4月14日
下一篇 2024年4月14日

相关推荐

  • 高防cdn边缘计算

    高防CDN的边缘计算是指利用分布在全球各地的边缘节点(Edge Nodes)来执行计算任务和处理请求,以提高网络性能和响应速度。以下是关于高防CDN边缘计算的一些关键特点和功能: …

    CDN资讯 2024年2月18日
    0
  • 什么时候需要使用CDN

    内容交付网络(或分发网络,你最喜欢哪个)是互联网的重要组成部分。这些位于世界各地的边缘服务器使我们能够以我们所期望的速度连接。当数据从源服务器传输到遥远的终端用户时,它将通过最近的…

    CDN资讯 2024年4月22日
    0
  • 常用的IP地址查询工具汇总

    在进行渗透测试时,了解目标网络的IP地址信息是至关重要的。IP地址查询工具是渗透测试人员的得力助手,能够提供详尽的网络情报,帮助渗透测试人员深入了解目标,发现潜在的安全漏洞。本文将…

    CDN资讯 2024年3月23日
    0
  • Go并发可视化解释 – sync.WaitGroup

    场景 Avito是一名校车司机,他帮助4个Gopher孩子上学。每天,Avito在他们的社区等待孩子们。他不知道孩子们需要多长时间,但他确切地知道有4个孩子他需要等待。 1*aZn…

    2024年4月14日
    0

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注