雪花算法

✍ dations ◷ 2025-04-04 06:51:07 #雪花算法

雪花算法(Snowflake)是一种生成分布式全局唯一ID的算法,生成的ID称为Snowflake IDs或snowflakes。这种算法由Twitter创建,并用于推文的ID。Discord和Instagram等其他公司采用了修改后的版本。

一个Snowflake ID有64位元。前41位是时间戳,表示了自选定的时期(英语:Epoch_(computing))以来的毫秒数。 接下来的10位代表计算机ID,防止冲突。 其余12位代表每台机器上生成ID的序列号,这允许在同一毫秒内创建多个Snowflake ID。最后以十进制将数字序列化。

SnowflakeID基于时间生成,故可以按时间排序。 此外,一个ID的生成时间可以由其自身推断出来,反之亦然。该特性可以用于按时间筛选ID,以及与之联系的对象。

2022年六月由@Wikipedia所发的一条推文的雪花ID是1541815603606036480。这个数字被转换成二进制就是0b 0001 0101 0110 0101 1010 0001 0001 1111 0110 0010 00|01 0111 1010|0000 0000 0000,其中以竖线分隔成三个部分。

这个格式最初由Twitter在2010年宣布。由于实现上的困难,他们在该年稍晚才推出更新。Twitter对推文、私讯、用户、列表和其他可透过API存取的对象使用雪花ID。

Discord同样也使用雪花ID,纪年则从2015年的第一秒开始。

Instagram使用了修改后的版本,其中41位元用作时间戳,13位元用于表示分片(Shard)ID,10位元表示序列号。

相关

  • 马克·费尔德曼马克·费尔德曼(波兰语:Marc Feldmann,1944年12月2日-),出生于波兰,英国免疫学家,牛津大学教授。费尔德曼曾就读于墨尔本大学和沃尔特和伊丽莎·霍尔学院医学研究所。在20世纪70年代
  • 铁路地下化高雄市区铁路地下化计划(简称高雄铁路地下化)为台湾铁路管理局台铁捷运化暨台铁立体化改建计划,也是中华民国政府继台北铁路地下化之后所兴建的第二座地下铁路,实际上共分为“高
  • 李士豪李士豪(1900年-1972年),浙江诸暨人,中华人民共和国政治人物。担任华东行政委员会水产管理局副局长,浙江省农林厅厅长。1954年,当选第一届全国人民代表大会代表。
  • 成都市新都区升庵中学成都市新都区升庵中学得名于明代状元杨升庵,它成立于2002年。升庵中学校训“好学穷理,精思深索”提炼于杨升庵的名句“好学穷理,老而弥笃;思不厌精,索不厌深”。自2013年以来,升庵
  • 有限状态向量量化器有限状态VQ(Finite state vector quantization, FSVQ)是有记忆性的VQ(Vector quantization, VQ),它可以用一个有限状态机(Finite-state machine)来描述,其中每一个状态各代表一个分
  • 风暴僵尸网络风暴僵尸网络或风暴蠕虫僵尸网络,是一种受远程控制的僵尸电脑(机器人网络)组成的网络。该网络是由暴风蠕虫(一种透过垃圾电子邮件散播的木马)连起来的。研究预测截至2007年9月为
  • 金春峰金春峰(1935年-),原名金富春,湖南邵阳人,中国思想史家,对于先秦文化与哲学、易学、黄老帛书、两汉哲学、宋明理学史、朱子哲学等深有研究。早年毕业于北京大学,师从冯友兰先生。1965
  • 帕拉斯巴里帕拉斯巴里(Palasbari),是印度阿萨姆邦Kamrup县的一个城镇。总人口4741(2001年)。该地2001年总人口4741人,其中男性2427人,女性2314人;0—6岁人口416人,其中男229人,女187人;识字率79.6
  • 旧辞旧辞(日语:きゅうじ)乃是日本《记纪》二书的资料来源,记载了天皇、皇族、各氏族相关人物等的故事,惟目前已佚散不传。年仅28岁、博闻强记的稗田阿礼能口诵《帝纪》、《旧辞》,故太
  • 巴斯托涅战役序幕 菲安登战役 – 瓦勒沙伊德战役德军最初攻势 洛斯海姆山口 – 兰策拉特岭 – 狮鹫行动盟军防守及反攻 埃尔森博恩山岭 – 圣维特 – 巴斯托涅德军反攻 地板 – 北