C#仿SnowFlake算法
我们的项目需要在本地生成一个唯一的ID,于是考虑到用SnowFlake算法来实现,经过调研,Github上找到了一个开源库,用起来十分方便。使用方法分享如下:
Github地址
使用说明
1. 引入
在NuGet中查找IdGen.Configuration,并导入项目
2. 修改配置文件(App.config)
添加如下配置(注意:configSections要放在最前面):
1 |
|
3. 使用示例
1 | static void Main(string[] args) |
4. 其他说明
4.1 关于配置文件
默认ID构成如下:
Sign(1bit) — Timestamp(41bits) — Generator(10bits) — Sequence(12bits)
可以通过配置文件修改ID构成,例如示例中的配置方法(timestampBits=”41” generatorIdBits=”16” sequenceBits=”6”)是:
1(符号位)-41(约69年)-16(65536份软件实例)-6(每毫秒产生64个)
算法无法完全保证ID绝对唯一,可以考虑不同的用户分配不同的ID来解决,例如配置文件中的id=”2048”。
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.