ToB企服应用市场:ToB评测及商务社交产业平台

标题: python雪花算法 [打印本页]

作者: 反转基因福娃    时间: 2024-12-12 22:29
标题: python雪花算法
雪花算法(Snowflake Algorithm)是一种用于天生唯一的ID的算法,它由Twitter开辟。其天生的ID在全局范围内是唯一的,适合高并发场景。雪花算法天生的ID通常是一个64位的整数,包含多个部分,具体结构如下:
1. **时间戳(41位)**:当前时间的毫秒数,能支持69年的时间范围。
2. **工作机器ID(10位)**:机器ID,可以支持1024台机器。
3. **数据中心ID(10位)**:数据中心ID,支持1024个数据中心。
4. **序列号(12位)**:在同一毫秒内天生的ID序列号,支持每毫秒天生4096个ID。
以下是一个用Python实现的雪花算法的代码示例,附带注释:
[code]import timeimport threadingclass Snowflake:# 根本参数epoch = 1609459200000 # 自定义的开始时间(2021-01-01 00:00:00)worker_id_bits = 10 # 工作机器ID占用的位数datacenter_id_bits = 10 # 数据中心ID占用的位数sequence_bits = 12 # 序列号占用的位数# 计算各部分的位移worker_id_shift = sequence_bits # 序列号位移datacenter_id_shift = sequence_bits + worker_id_bits # 数据中心ID位移timestamp_shift = sequence_bits + worker_id_bits + datacenter_id_bits # 时间戳位移# 天生掩码max_worker_id = -1 ^ (-1




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4