# README
订单号-生成算法
基于 snowflake 算法,根据业务场景,做适应性调整:
block说明 | bits | 拟采用的实现方式 |
---|---|---|
1 最高位 | 1 | 暂未使用(置0) |
2 时间戳 | 28 | 采用unix 毫秒数 (millsOfDay) bin(24x60x60x1000) = '0b101-0010-0110-0101-1100-0000-0000' 需要27bit |
3 机器ID | 8 | 为支持分布式,加入机器ID。现阶段机器不会太多,可采用1个字节标识(如采用机器IP最后2字节,异或为1个字节) |
4 管理员ID | 8 | 取管理员ID低 8位 |
5 用户ID | 8 | 取用户ID 低8位 |
最后,在订单编号上加上 8 个数字的日期前缀:YYYYMMDD
orderSN 总长度为27位数字(8+19),样例: 202105171838043898712414209 PS:int64 格式化为19位的10进制数,不足19位补充前缀0
# Functions
GetMachineByIP 获取机器ID (IP最后2字节异或).
GetMachineFromID 从ID中获取machineID.
GetSeqFromID 从ID中获取seq.
GetTimeFromID 从ID中获取time.
LSB last byte.
NewFastID new.
# Variables
StdFastID 默认的fastID.