modulepackage
0.0.0-20180906112711-fc763800eec9
Repository: https://github.com/zheng-ji/gosnowflake.git
Documentation: pkg.go.dev
# README
goSnowFlake
A threadsafe unique ID generator inspired by Twitter SnowFlake theory
根据 Twitter SnowFlake 算法, 实现的分布式线程安全 UID 生成器
Feature
- ThreadSafe unique id generator
- Green pluggable, without external storage like Redis or MySQL
- Suitable for distributed systems
- Implement Twitter's SnowFlake theory
Description
+---------------+----------------+----------------+
|timestamp(ms)42 | worker id(10) | sequence(12) |
+---------------+----------------+----------------+
id = timestamp | workerid | sequence (eg. 1451063443347648410)
An unique ID contains 3 parts:
- a timestamp in nanosecond
- a worker ID
- a sequence number
Installation
go get github.com/zheng-ji/goSnowFlake
Example
import (
"fmt"
"github.com/zheng-ji/goSnowFlake"
)
func main() {
// Params: Given the workerId, 0 < workerId < 1024
iw, err := goSnowFlake.NewIdWorker(1)
if err!= nil {
fmt.Println(err)
}
for i := 0; i < 100; i++ {
if id, err := iw.NextId(); err != nil {
fmt.Println(err)
} else{
fmt.Println(id)
}
}
}
Documentation
License
Copyright (c) 2016 by zheng-ji released under MIT License.
# Packages
No description provided by the author
# Functions
NewIdWorker Func: Generate NewIdWorker with Given workerid.
ParseId Func: reverse uid to timestamp, workid, seq.
# Constants
No description provided by the author
equal as getMaxWorkerId().
Num of Sequence Bits.
equal as getSequenceMask().
No description provided by the author
Num of WorkerId Bits.
No description provided by the author