merge master

pull/2/head
q191201771
commit 745c8fcd3f

@ -1,3 +1,8 @@
#### v0.7.1
- package snowflake
- [feat] 新增的包分布式唯一性64位ID生成器
#### v0.7.0
- package consistenthash:

@ -29,11 +29,13 @@ Go语言基础库
```
pkg/ ...... 源码包
|-- bininfo/ ...... 将编译时源码的 git 版本信息(当前 commit log 的 sha 值和 commit message编译时间Go 版本,平台打入程序中
|-- snowflake/ ...... 分布式唯一性 ID 生成器
|-- bitrate/ ...... 计算带宽
|-- consistenthash/ ...... 一致性哈希
|-- nazalog/ ...... 日志库
|-- slicebytepool/ ...... []byte 内存池
|-- assert/ ...... 提供了单元测试时的断言功能,减少一些模板代码
|-- nazastring/ ...... string 和 []byte 相关的操作
|-- consistenthash/ ...... 一致性哈希
|-- bele/ ...... 提供了大小端的转换操作
|-- nazaatomic/ ...... 原子操作
|-- nazajson/ ...... json 操作
@ -41,8 +43,6 @@ pkg/ ...... 源码包
|-- connection/ ...... 对 net.Conn 接口的二次封装
|-- filebatch/ ...... 文件批处理操作
|-- nazamd5/ ...... md5 操作
|-- snowflake/ ...... 分布式唯一性 ID 生成器
|-- bitrate/ ...... 计算带宽
|-- ratelimit/ ...... 限流器,令牌桶
|-- ic/ ...... 将整型切片压缩成二进制字节切片
|-- unique/ ...... 对象唯一 ID
@ -65,6 +65,7 @@ naza 即哪吒(正确拼音为 nezha我女儿发音读作 naza少一个
* [Go创建对象时如何优雅的传递初始化参数](https://pengrl.com/p/60015/)
* pkg/snowflake [https://pengrl.com/p/20041/](分布式ID生成算法snowflake介绍及Go语言实现)
* pkg/bininfo [给Go程序加入编译版本时间等信息](https://https://pengrl.com/p/37397/)
#### 联系我

@ -96,6 +96,7 @@ func (n *Node) Gen(nowUnixMSec ...int64) (int64, error) {
// 时间戳相同时,使用递增序号解决冲突
if now == n.lastTs {
n.seq = (n.seq + 1) & n.seqMask
// 递增序号翻转为 0表示该时间戳下的序号已经全部用完阻塞等待系统时间增长
if n.seq == 0 {
for now <= n.lastTs {
now = time.Now().UnixNano() / 1e6

Loading…
Cancel
Save