Documentation
¶
Index ¶
- Variables
- func GenerateMonotonicULID() (string, error)
- func GenerateULID() (string, error)
- func NodeIDFromMAC() (int64, error)
- func ReleaseEntropyReader(er *EntropyReader)
- func SecureSequence(prefix string) (string, error)
- func Snowflake(nodeID int64) (int64, error)
- func SnowflakeWithStrategy(nodeID int64, strategy ClockDriftStrategy) (int64, error)
- func Token(length int) (string, error)
- func UUID() (string, error)
- type ClockDriftStrategy
- type Config
- type EntropyReader
- type FormatType
- type Generator
- type IDType
- type MonotonicEntropy
- type SecureSequenceGenerator
- type SnowflakeConfig
- type SnowflakeGenerator
- type TokenGenerator
- type ULID
- type ULIDGenerator
- type UUIDGenerator
- type UUIDVersion
Constants ¶
This section is empty.
Variables ¶
View Source
var ( // ErrInvalidIDLength 表示ID长度无效 ErrInvalidIDLength = errors.New("无效的ID长度") // ErrIDGenerationFailed 表示ID生成失败 ErrIDGenerationFailed = errors.New("ID生成失败") // ErrInvalidNodeID 表示节点ID无效 ErrInvalidNodeID = errors.New("无效的节点ID") // ErrClockMovedBackwards 表示时钟回拨 ErrClockMovedBackwards = errors.New("时钟回拨,无法生成ID") )
错误定义
Functions ¶
func GenerateMonotonicULID ¶
GenerateMonotonicULID 生成单调递增的ULID
func ReleaseEntropyReader ¶
func ReleaseEntropyReader(er *EntropyReader)
ReleaseEntropyReader 归还熵源到池
func SnowflakeWithStrategy ¶
func SnowflakeWithStrategy(nodeID int64, strategy ClockDriftStrategy) (int64, error)
SnowflakeWithStrategy 使用指定时钟回拨策略生成雪花ID
Types ¶
type ClockDriftStrategy ¶
type ClockDriftStrategy int
ClockDriftStrategy 时钟回拨处理策略
const ( // StrategyError 出错策略 - 直接返回错误 StrategyError ClockDriftStrategy = iota // StrategyWait 等待策略 - 等待时钟赶上 StrategyWait // StrategyTruncate 截断策略 - 使用最后的时间戳 StrategyTruncate )
type Config ¶
type Config struct {
// Type ID类型
Type IDType
// Format ID格式
Format FormatType
// UUIDVersion UUID版本
UUIDVersion UUIDVersion
// TokenLength 令牌长度
TokenLength int
// SequencePrefix 序列前缀
SequencePrefix string
// SnowflakeConfig 雪花算法配置
SnowflakeConfig SnowflakeConfig
// 优化:单调递增选项
MonotonicULID bool
// 优化:时钟回拨处理策略
ClockDriftHandling ClockDriftStrategy
}
Config 配置ID生成器
type EntropyReader ¶
type EntropyReader struct {
// contains filtered or unexported fields
}
EntropyReader 包装随机源以提高性能
type FormatType ¶
type FormatType int
FormatType 定义ID格式类型
const ( // FormatHex 十六进制格式 FormatHex FormatType = iota // FormatBase32 Base32格式 FormatBase32 // FormatBase64 Base64格式 FormatBase64 // FormatString 字符串格式 (例如标准UUID字符串) FormatString // FormatInt 数字格式 (用于雪花算法) FormatInt )
type Generator ¶
type Generator interface {
// Generate 生成ID
Generate() (string, error)
// GenerateBytes 生成字节形式的ID
GenerateBytes() ([]byte, error)
// GenerateInt 生成整数形式的ID(仅适用于雪花算法)
GenerateInt() (int64, error)
}
Generator ID生成器接口
type MonotonicEntropy ¶
type MonotonicEntropy struct {
// contains filtered or unexported fields
}
MonotonicEntropy 单调递增的熵源
func NewMonotonicEntropy ¶
func NewMonotonicEntropy() *MonotonicEntropy
NewMonotonicEntropy 创建单调递增的熵源
type SecureSequenceGenerator ¶
type SecureSequenceGenerator struct {
// contains filtered or unexported fields
}
安全序列生成器
func (*SecureSequenceGenerator) Generate ¶
func (g *SecureSequenceGenerator) Generate() (string, error)
生成安全序列
func (*SecureSequenceGenerator) GenerateBytes ¶
func (g *SecureSequenceGenerator) GenerateBytes() ([]byte, error)
生成安全序列字节
func (*SecureSequenceGenerator) GenerateInt ¶
func (g *SecureSequenceGenerator) GenerateInt() (int64, error)
生成整数形式的ID
type SnowflakeConfig ¶
type SnowflakeConfig struct {
// NodeID 节点ID
NodeID int64
// NodeBits 节点位数
NodeBits uint8
// StepBits 序列位数
StepBits uint8
// TimeUnit 时间单位
TimeUnit time.Duration
// EpochStart 开始时间戳
EpochStart int64
// SequenceBlockSize 序列块大小
SequenceBlockSize int64
// UseRandom 使用随机数填充序列
UseRandom bool
// contains filtered or unexported fields
}
SnowflakeConfig 雪花算法配置
type SnowflakeGenerator ¶
type SnowflakeGenerator struct {
// contains filtered or unexported fields
}
雪花算法生成器
func (*SnowflakeGenerator) Generate ¶
func (g *SnowflakeGenerator) Generate() (string, error)
生成雪花算法ID
func (*SnowflakeGenerator) GenerateBytes ¶
func (g *SnowflakeGenerator) GenerateBytes() ([]byte, error)
生成雪花算法ID字节
func (*SnowflakeGenerator) GenerateInt ¶
func (g *SnowflakeGenerator) GenerateInt() (int64, error)
生成雪花算法ID整数
type TokenGenerator ¶
type TokenGenerator struct {
// contains filtered or unexported fields
}
令牌生成器
func (*TokenGenerator) GenerateBytes ¶
func (g *TokenGenerator) GenerateBytes() ([]byte, error)
生成令牌字节
func (*TokenGenerator) GenerateInt ¶
func (g *TokenGenerator) GenerateInt() (int64, error)
生成整数形式的ID (令牌不支持,返回错误)
type ULID ¶
type ULID [ulidTimeSize + ulidRandomSize]byte
ULID表示一个ULID(Universally Unique Lexicographically Sortable Identifier) 26个字符,按照lexicographical排序 ULID是128位标识符,包含48位时间戳(毫秒)和80位随机数,编码为26个字符的字符串
type ULIDGenerator ¶
type ULIDGenerator struct {
// contains filtered or unexported fields
}
ULID生成器
func (*ULIDGenerator) GenerateBytes ¶
func (g *ULIDGenerator) GenerateBytes() ([]byte, error)
生成ULID字节
func (*ULIDGenerator) GenerateInt ¶
func (g *ULIDGenerator) GenerateInt() (int64, error)
生成整数形式的ID (ULID不支持,返回错误)
type UUIDGenerator ¶
type UUIDGenerator struct {
// contains filtered or unexported fields
}
UUID生成器
func (*UUIDGenerator) GenerateBytes ¶
func (g *UUIDGenerator) GenerateBytes() ([]byte, error)
生成UUID字节
func (*UUIDGenerator) GenerateInt ¶
func (g *UUIDGenerator) GenerateInt() (int64, error)
生成整数形式的ID (UUID不支持,返回错误)
type UUIDVersion ¶
type UUIDVersion int
UUIDVersion 定义UUID版本
const ( // UUIDv4 完全随机UUID UUIDv4 UUIDVersion = 4 // UUIDv7 有序的UUID(基于时间) UUIDv7 UUIDVersion = 7 )
Click to show internal directories.
Click to hide internal directories.