协议:MIT

示例

首先到nuget上安装Yitter.IdGenerator最新的包。

// 创建 IdGeneratorOptions 工具,请在布局函数中输入 WorkerId:var options = new IdGeneratorOptions(1);// options.WorkerIdBitLength = 10; // WorkerIdBitLength 默认值6,支持的 WorkerId 最大值为2^6-1,若 WorkerId 超过64,可设置更大的 WorkerIdBitLength// ...... 其它参数设置参考 IdGeneratorOptions 定义,一样平常来说,只要再设置 WorkerIdBitLength (决定 WorkerId 的最大值)。
// 保存参数(必须的操作,否则以上设置都不能生效):YitIdHelper.SetIdGenerator(options);// 以上初始化过程只需全局一次,且必须在第2步之前设置。

// 初始化往后,即可在任何必要天生ID的地方,调用以下方法:var newId = YitIdHelper.NextId();

如果基于DI框架集成,可以参考 YitIdHelper 去管理 IdGenerator 工具,必须利用单例模式。

php主键生成器C开源之散布式主键ID生成器IdGenerator HTML

个人特地安装了IdGenerator包,运行20次天生了如下20条ID主键,性能和长度都能接管。

性能

10位自增序列,1000次漂移最大值

连续要求量

5K

5W

50W

传统雪花算法

0.0045s

0.053s

0.556s

雪花漂移算法

0.0015s

0.012s

0.113s

极致性能:500W/s~3000W/s。
(所有测试数据均基于8代低压i7打算)

129053495681099 (运行1年)387750301904971 (运行3年)646093214093387 (运行5年)1292658282840139 (运行10年)9007199254740992 (js Number 最大值,可以支撑70年)165399880288699493 (普通雪花算法天生的ID)结尾

目前唯一ID的实现办法非常多,该开源包作为雪花算法的升级版,其长度压缩,性能提升,实现办法非常大略,是个不错的开源源码,并且其险些支持市情上主流开拓措辞。
C#措辞下的代码粗略的浏览过,代码量不多,统共就几个类,而且其是MIT协议的,乃至可以直接将其几个类文件直接整合到项目之中。