Browse Source

feat(docs): 添加IdGenerator模块文档

pull/1049/head
feijie 1 year ago
parent
commit
9e6049e183
  1. 73
      aspnet-core/framework/common/LINGYUN.Abp.IdGenerator/README.EN.md
  2. 73
      aspnet-core/framework/common/LINGYUN.Abp.IdGenerator/README.md

73
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<SnowflakeIdOptions>(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)

73
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<SnowflakeIdOptions>(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)
Loading…
Cancel
Save