You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
1 year ago | |
|---|---|---|
| .. | ||
| LINGYUN/Abp/IdGenerator | 1 year ago | |
| FodyWeavers.xml | 2 years ago | |
| FodyWeavers.xsd | 2 years ago | |
| LINGYUN.Abp.IdGenerator.csproj | 1 year ago | |
| README.EN.md | 1 year ago | |
| README.md | 1 year ago | |
README.md
LINGYUN.Abp.IdGenerator
介绍
LINGYUN.Abp.IdGenerator 是一个分布式ID生成器模块,主要实现了雪花算法(Snowflake)来生成分布式唯一ID。
功能
- 雪花算法ID生成器 (
SnowflakeIdGenerator)- 支持自定义工作机器ID和数据中心ID
- 支持自定义序列号位数
- 支持时间回退处理
- 提供分布式环境下的唯一ID生成
配置项
SnowflakeIdOptions
WorkerIdBits(默认: 5) - 工作机器ID位数DatacenterIdBits(默认: 5) - 数据中心ID位数Sequence(默认: 0) - 序列号起始值SequenceBits(默认: 12) - 序列号位数UsePreviousInTimeRollback(默认: true) - 是否在时间回退时使用上一个时间戳WorkerId- 工作机器ID,如未指定则从环境变量WORKERID获取或随机生成DatacenterId- 数据中心ID,如未指定则从环境变量DATACENTERID获取或随机生成
安装
dotnet add package LINGYUN.Abp.IdGenerator
使用
- 添加
[DependsOn(typeof(AbpIdGeneratorModule))]到你的模块类上。
[DependsOn(typeof(AbpIdGeneratorModule))]
public class YourModule : AbpModule
{
public override void ConfigureServices(ServiceConfigurationContext context)
{
Configure<SnowflakeIdOptions>(options =>
{
options.WorkerId = 1;
options.DatacenterId = 1;
});
}
}
- 注入并使用ID生成器:
public class YourService
{
private readonly IDistributedIdGenerator _idGenerator;
public YourService(IDistributedIdGenerator idGenerator)
{
_idGenerator = idGenerator;
}
public long CreateId()
{
return _idGenerator.Create();
}
}