学海无涯

导航

ASP.NET Core雪花算法分布式ID生成工具类

安装:

1.NuGet中添加  OnceMi.AspNetCore.IdGenerator 程序集

2.Program中设置参数

//AppId,Appid范围为0-63
builder.Services.AddIdGenerator(m =>
{
    m.AppId = 1;
});

3.获取ID

 [ApiController]
    [Route("[controller]")]
    public class WeatherForecastController : ControllerBase
    {

        private readonly ILogger<WeatherForecastController> _logger;
        private readonly IIdGeneratorService _idGenerator;

        public WeatherForecastController(ILogger<WeatherForecastController> logger, IIdGeneratorService idGenerator)
        {
            _logger = logger;
            _idGenerator = idGenerator;
        }
  

        [HttpGet("GeneratorID")]
        public ActionResult<Order> GeneratorID()
        {//雪花算法分布式ID
            List<Order> orders = new List<Order>();
            //生成一个ID
            orders.Add(new Order { Id = _idGenerator.NewId() });
            //一次生成多个ID
            var ids = _idGenerator.NewIds(5);
            foreach (var id in ids)
            {
                orders.Add(new Order { Id = id });
            }
            return Ok(orders);
        }
    }

  

引用:https://github.com/oncemi/OnceMi.AspNetCore.IdGenerator

其它:雪花算法(SnowFlake)——雪花漂移算法

Yitter.IdGenerator

https://github.com/yitter/IdGenerator

posted on 2022-09-12 16:47  宁静致远.  阅读(965)  评论(0编辑  收藏  举报