分布式唯一 ID 生成器 - IDGen

DotNetCore实战

共 1187字,需浏览 3分钟

 ·

2023-05-06 15:15

a70ed28248da575b06998bf6f6bcf7bc.webp7c13a463ea8ea0aa93142603f42ea6c1.webp6beffcc2652172135947ff363ebd8518.webp

你好,这里是 Dotnet 工具箱,定期分享 Dotnet 有趣,实用的工具和组件,希望对您有用!



IdGen



IdGen 是 .NET 平台下开源的类似 Twitter Snowflake 的 ID 生成器。

在某些情况下,您需要一个低延迟、分布式、按时间排序、紧凑且高度可用的 Id 生成系统。

实际上,IdGen 会生成 63 位 Id。一个 Id 由 3 部分组成:

  • • Timestamp

  • • Generator-id

  • • Sequence

默认 Default 生成的 Id 的 IdStructure 结构如下:

863a36b8ce5f8aee8b105c1c34618a98.webp

其中的 generator-id 部分,是需要手动配置的,不同的线程,不同的主机,不同的地区等,它在系统中应该是唯一的。

IDGen是一款开源的分布式唯一ID生成器,支持多种ID生成算法,并且可以在高并发场景下快速生成全局唯一的ID。目前支持的ID生成算法包括Twitter Snowflake算法、UUID算法,以及自增ID算法。

IDGen的优点包括:

  1. 支持多种ID生成算法,用户可以根据需求选择合适的算法。

  2. 可以在高并发场景下快速生成全局唯一的ID。

  3. 支持分布式部署,可以满足多节点、多数据中心的需求。

  4. 提供了简单易用的API接口,用户可以轻松接入。



快速使用


使用 Nuget 安装 IdGen.

5d34549eb9e89d5136a1928805defed7.webp

修改代码如下:

    using IdGen;
using System.Linq;

class Program
{
    static void Main(string[] args)
    {
        var generator = new IdGenerator(0);
        var id = generator.CreateId();
        // Example id: 862817670527975424
    }
}

非常简单,您已经创建了您的第一个 Id!

想要创建 100 个 ID?代码改成下面的即可。

    var id = generator.Take(100);
  


项目地址


https://github.com/RobThree/IdGen

浏览 127
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报