diff --git a/aspnet-core/framework/common/LINGYUN.Abp.IdGenerator/README.EN.md b/aspnet-core/framework/common/LINGYUN.Abp.IdGenerator/README.EN.md new file mode 100644 index 000000000..2f128734c --- /dev/null +++ b/aspnet-core/framework/common/LINGYUN.Abp.IdGenerator/README.EN.md @@ -0,0 +1,73 @@ +# LINGYUN.Abp.IdGenerator + +## Introduction + +`LINGYUN.Abp.IdGenerator` is a distributed ID generator module that implements the Snowflake algorithm to generate distributed unique IDs. + +## Features + +* Snowflake Algorithm ID Generator (`SnowflakeIdGenerator`) + * Support for custom worker ID and datacenter ID + * Support for custom sequence bits + * Support for time rollback handling + * Provides unique ID generation in distributed environments + +## Configuration + +### SnowflakeIdOptions + +* `WorkerIdBits` (default: 5) - Number of bits for worker ID +* `DatacenterIdBits` (default: 5) - Number of bits for datacenter ID +* `Sequence` (default: 0) - Initial value for sequence +* `SequenceBits` (default: 12) - Number of bits for sequence +* `UsePreviousInTimeRollback` (default: true) - Whether to use previous timestamp when time rolls back +* `WorkerId` - Worker ID, if not specified, gets from environment variable WORKERID or generates randomly +* `DatacenterId` - Datacenter ID, if not specified, gets from environment variable DATACENTERID or generates randomly + +## Installation + +```bash +dotnet add package LINGYUN.Abp.IdGenerator +``` + +## Usage + +1. Add `[DependsOn(typeof(AbpIdGeneratorModule))]` to your module class. + +```csharp +[DependsOn(typeof(AbpIdGeneratorModule))] +public class YourModule : AbpModule +{ + public override void ConfigureServices(ServiceConfigurationContext context) + { + Configure(options => + { + options.WorkerId = 1; + options.DatacenterId = 1; + }); + } +} +``` + +2. Inject and use the ID generator: + +```csharp +public class YourService +{ + private readonly IDistributedIdGenerator _idGenerator; + + public YourService(IDistributedIdGenerator idGenerator) + { + _idGenerator = idGenerator; + } + + public long CreateId() + { + return _idGenerator.Create(); + } +} +``` + +## Links + +* [中文文档](./README.md) diff --git a/aspnet-core/framework/common/LINGYUN.Abp.IdGenerator/README.md b/aspnet-core/framework/common/LINGYUN.Abp.IdGenerator/README.md new file mode 100644 index 000000000..20f8d2e76 --- /dev/null +++ b/aspnet-core/framework/common/LINGYUN.Abp.IdGenerator/README.md @@ -0,0 +1,73 @@ +# 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获取或随机生成 + +## 安装 + +```bash +dotnet add package LINGYUN.Abp.IdGenerator +``` + +## 使用 + +1. 添加 `[DependsOn(typeof(AbpIdGeneratorModule))]` 到你的模块类上。 + +```csharp +[DependsOn(typeof(AbpIdGeneratorModule))] +public class YourModule : AbpModule +{ + public override void ConfigureServices(ServiceConfigurationContext context) + { + Configure(options => + { + options.WorkerId = 1; + options.DatacenterId = 1; + }); + } +} +``` + +2. 注入并使用ID生成器: + +```csharp +public class YourService +{ + private readonly IDistributedIdGenerator _idGenerator; + + public YourService(IDistributedIdGenerator idGenerator) + { + _idGenerator = idGenerator; + } + + public long CreateId() + { + return _idGenerator.Create(); + } +} +``` + +## 链接 + +* [English document](./README.EN.md)