https://github.com/bwmarrin/snowflake
https://github.com/sony/sonyflake
用了两个库,生成的 ID 转 int64 纯数字长度都不一样,而且库的配置不同,长度也不一样。
长度是不固定吗?
生成是 18 个数字:
import (
"time"
"github.com/sony/sonyflake"
)
var (
sf = sonyflake.NewSonyflake(sonyflake.Settings{
StartTime: time.Now().Add(-time.Hour),
MachineID: func() (uint16, error) {
return uint16(10), nil
},
})
)
func GetNextSonyflakeId() int64 {
flakeId, _ := sf.NextID()
return int64(flakeId)
}
生成的是 13 个数字:
import (
"github.com/sony/sonyflake"
)
var (
sf = sonyflake.NewSonyflake(sonyflake.Settings{})
)
func GetNextSonyflakeId() int64 {
flakeId, _ := sf.NextID()
return int64(flakeId)
}