hid

package
v1.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 5, 2022 License: MIT Imports: 5 Imported by: 0

Documentation

Index

Constants

View Source
const (
	BitLenTime      = 39                               // 时间位长
	BitLenSequence  = 8                                // 序列号的位长
	BitLenMachineID = 63 - BitLenTime - BitLenSequence // 机器ID的位长
)

这些常数是SonyFlake ID部分的位长度。

Variables

This section is empty.

Functions

func Decompose

func Decompose(id uint64) map[string]uint64

Decompose 返回一组SonyFlake ID部分。

func GetIdGenTime

func GetIdGenTime(id uint64) string

GetIdGenTime 获取Id生成时间

@id SnowFlake生成的唯一Id

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

func NewSonyFlake(st Settings) *SonyFlake

NewSonyFlake 返回用给定设置配置的新SonyFlake。

NewSonyFlake 在以下情况下返回nil:
- Settings.StartTime 在当前时间之前。
- Settings.MachineID 返回一个错误。
- Settings.CheckMachineID 返回false。

func (*SonyFlake) NextID

func (sf *SonyFlake) NextID() (uint64, error)

NextID 生成下一个唯一ID。

SonyFlake时间溢出后,NextID返回一个错误。

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL