uid

package
v0.1.9 Latest Latest
Warning

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

Go to latest
Published: Oct 13, 2025 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrBigTime 在使用大于 MaxTime 的时间戳构造ULID时返回。
	ErrBigTime = errors.New("ulidTag: time too big")
	// ErrMonotonicOverflow 在单调熵源递增时发生溢出时返回。
	ErrMonotonicOverflow = errors.New("ulidTag: monotonic entropy overflow")
)
View Source
var Epoch int64 = 1759248000000

Epoch 是雪花ID算法的起始时间戳(毫秒)。 这个值一旦确定,就不能再更改。2025-10-01 00:00:00

Functions

func NewULID

func NewULID() string

NewULID 生成一个新的、安全的、基于当前时间的 ulidTag 字符串。 这个函数是并发安全的,可以直接在多个 Goroutine 中调用。 它内部处理了所有关于熵和时间戳的细节。

func ParseSnowflakeID added in v0.1.8

func ParseSnowflakeID(id int64) (timestamp int64, workerID int64, sequence int64)

ParseSnowflakeID 从一个雪花ID中解析出时间戳、Worker ID和序列号。 这对于调试和验证ID非常有用。

Types

type MonotonicEntropy

type MonotonicEntropy struct {
	io.Reader
	// contains filtered or unexported fields
}

MonotonicEntropy 提供单调熵。

func (*MonotonicEntropy) MonotonicRead

func (m *MonotonicEntropy) MonotonicRead(ms uint64, p []byte) (err error)

MonotonicRead 实现 monotonicReader 接口。

type SnowflakeNode added in v0.1.8

type SnowflakeNode struct {
	// contains filtered or unexported fields
}

SnowflakeNode 代表一个雪花ID生成器节点。

func NewSnowflakeNode added in v0.1.8

func NewSnowflakeNode(workerID int64) (*SnowflakeNode, error)

NewSnowflakeNode 使用给定的 worker id 创建一个新的雪花ID节点。

重要提示:worker id 在您的整个分布式系统中必须是唯一的! 您需要自己管理 worker id 的分配,确保不同的节点使用不同的 worker id。 worker id 的取值范围是 [0, 1023]。

func (*SnowflakeNode) NewID added in v0.1.8

func (n *SnowflakeNode) NewID() int64

NewID 生成一个唯一的、单调递增的雪花ID。

Jump to

Keyboard shortcuts

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