雪花算法

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

 格式 
一个Snowflake ID有64位元。前41位是时间戳，表示了自选定的以来的毫秒数。 接下来的10位代表计算机ID，防止冲突。 其余12位代表每台机器上生成ID的序列号，这允许在同一毫秒内创建多个Snowflake ID。最後以十進制將數字序列化。

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

 範例 
2022年六月由@Wikipedia所發的一條推文的雪花ID是。這個數字被轉換成二進制就是，其中以豎線分隔成三個部分。
 最前面41位元（加上1位元的0）轉換成十進制為。將這個值加上推特紀年（UNIX時間毫秒），這條推特的UNIX時間為：即世界協調時間2022年6月28日16:07:40.105。
 中間10位元是機器ID。
 後面12位元解碼出來全部為0，代表這條推文是該機器於這一毫秒所發出的第一條推文。

 用途 
這個格式最初由Twitter在2010年宣布。由於實現上的困難，他們在該年稍晚才推出更新。Twitter對推文、私訊、用戶、列表和其他可透過API存取的對象使用雪花ID。

Discord同樣也使用雪花ID，紀年則從2015年的第一秒開始。

Instagram使用了修改後的版本，其中41位元用作時間戳，13位元用於表示分片（Shard）ID，10位元表示序列號。

 參見 
 通用唯一辨識碼

 參考文獻 

 外部連結 


Category:Twitter
Category:唯一識別符