Documentation ¶
Index ¶
Constants ¶
View Source
const ( BitLenTime = 39 // 时间位长 BitLenSequence = 8 // 序列号的位长 BitLenMachineID = 63 - BitLenTime - BitLenSequence // 机器ID的位长 )
这些常数是SonyFlake ID部分的位长度。
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Settings ¶
type Settings struct { StartTime time.Time MachineID func() (uint16, error) CheckMachineID func(uint16) bool }
Settings 配置SonyFlake:
StartTime 是将SonyFlake时间定义为经过时间的时间。 如果StartTime为0,则将SonyFlake的开始时间设置为"2014-09-01 00:00:00 +0000 UTC"。 如果StartTime早于当前时间,则不会创建SonyFlake。 MachineID 返回SonyFlake实例的唯一ID。 如果MachineID返回错误,则不会创建SonyFlake。 如果MachineID为nil,则使用默认的MachineID。 默认的MachineID返回私有IP地址的低16位。 CheckMachineID 验证机器ID的唯一性。 如果CheckMachineID返回false,说明SonyFlake未创建。 如果CheckMachineID为nil,则不进行验证。
type SonyFlake ¶
type SonyFlake struct {
// contains filtered or unexported fields
}
SonyFlake 是一个分布式唯一ID生成器。
var IdBean *SonyFlake
IdBean 全局分布式唯一id实例,IdBean.NextID()获取唯一id。
func NewSonyFlake ¶
NewSonyFlake 返回用给定设置配置的新SonyFlake。
NewSonyFlake 在以下情况下返回nil: - Settings.StartTime 在当前时间之前。 - Settings.MachineID 返回一个错误。 - Settings.CheckMachineID 返回false。
Click to show internal directories.
Click to hide internal directories.