snowflake分布式唯一id c#实现
2021-02-15 03:17
阅读:511
snowflake算法
snowflake是Twitter开源的分布式ID生成算法,结果是一个long型的ID。其核心思想是:使用41bit作为毫秒数,10bit作为机器的ID(5个bit是数据中心,5个bit的机器ID),12bit作为毫秒内的流水号(意味着每个节点在每毫秒可以产生 4096 个 ID),最后还有一个符号位,永远是0。
刚刚看到一篇讨论snowflake的文章,之前也看过一些介绍分布式ID生成的算法.但是一直没有用c#实现过.这次正好实现以下.代码的话基本上是翻译了一下那篇文章里的java代码
核心代码如下
var timestamp = TimeGen();
//如果当前时间小于上一次ID生成的时间戳,说明系统时钟回退过这个时候应当抛出异常
if (timestamp
由于c#和java的语法还是比较像的,代码几乎就是复制粘贴.更多的讨论请看上面的文章.
github
文章来自:搜素材网的编程语言模块,转载请注明文章出处。
文章标题:snowflake分布式唯一id c#实现
文章链接:http://soscw.com/index.php/essay/55469.html
文章标题:snowflake分布式唯一id c#实现
文章链接:http://soscw.com/index.php/essay/55469.html
评论
亲,登录后才可以留言!