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