sharding雪花算法生成id
时间: 2023-11-03 22:45:38 浏览: 92
雪花算法让你了解雪花算法的底层
Sharding雪花算法是一种分布式系统中生成全局唯一ID的算法。这个算法通过使用时间戳、机器ID、序列号等信息来生成ID,保证了生成的ID在分布式系统中的唯一性和有序性。
具体来说,Sharding雪花算法生成的ID由以下几个部分组成:
1. 时间戳:占用了毫秒级的时间戳,可以精确到毫秒级别,支持了大约 69 年的时间戳,这个时间戳可以通过位运算得到。
2. 机器ID:占用了 10 位二进制位,表示了机器的唯一标识符,可以支持 1024 台不同的机器。
3. 序列号:占用了 12 位二进制位,表示了同一毫秒内生成的不同ID的序列号,可以支持每毫秒生成 4096 个不同的ID。
使用Sharding雪花算法生成ID的过程可以概括为:
1. 获取当前时间戳,精确到毫秒级别。
2. 将当前时间戳左移 22 位,空出机器ID和序列号的位数。
3. 从机器ID中获取机器标识符,将其左移 12 位。
4. 生成序列号,如果在同一毫秒内生成的ID数已经达到了最大值,就等待下一毫秒再生成。
5. 将时间戳、机器ID和序列号进行按位或操作,得到最终的ID。
Sharding雪花算法生成的ID具有全局唯一性和有序性,可以在分布式系统中广泛应用于订单号、日志ID、消息ID等场景。
阅读全文