使用容器部署golang项目时,饮用了 github.com/sony/sonyflake 生成snow id,初始化时不传入任何参数:
SnowId = sonyflake.NewSonyflake(sonyflake.Settings{})
在容器的ip设置设置为类似:192.18.10.8时,调用生成id存在空指针报错。
snowId, err := global_conf.SnowId.NextID()
处理方式,初始化时传入 MachineID 参数,MachineID如果实际业务中没有设计多个容器id,为避免重复可以使用随机数。
SnowId = sonyflake.NewSonyflake(sonyflake.Settings{MachineID: MachineID})
func MachineID() (uint16, error) {
id := rand.Int63n(10000)
return uint16(id), nil
}
标签:github,IP,golang,sonyflake,SnowId,MachineID,sony,id
From: https://www.cnblogs.com/jing1024/p/17925334.html