Skip to content

Commit

Permalink
feat(doc): update documentation
Browse files Browse the repository at this point in the history
  • Loading branch information
Ahoo-Wang committed Jan 2, 2024
1 parent 5c493bb commit 658cdee
Show file tree
Hide file tree
Showing 3 changed files with 91 additions and 29 deletions.
42 changes: 30 additions & 12 deletions documentation/docs/guide/extensions/cosid-jdbc.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,25 @@
# CosId-Jdbc 模块

[cosid-jdbc](https://github.com/Ahoo-Wang/CosId/tree/main/cosid-jdbc) 使用**关系型数据库**作为**雪花算法**(`SnowflakeId`) 的 机器号分配器 (`MachineIdDistributor`) 、**号段算法**(`SegmentId`)的号段分发器 (`IdSegmentDistributor`)。
[cosid-jdbc](https://github.com/Ahoo-Wang/CosId/tree/main/cosid-jdbc) 提供 **关系型数据库** 的支持。实现了:

- `MachineIdDistributor`:作为**雪花算法**(`SnowflakeId`)的机器号分配器 (`MachineIdDistributor`)。
- `IdSegmentDistributor`:作为**号段算法**(`SegmentId`)的号段分发器 (`IdSegmentDistributor`)。

## 安装

::: code-group
```kotlin [Gradle(Kotlin)]
val cosidVersion = "latestVersion"
implementation("org.springframework.boot:spring-boot-starter-data-jdbc")
implementation("me.ahoo.cosid:cosid-jdbc:${cosidVersion}")
```
```xml [Maven]
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jdbc</artifactId>
<version>${springboot.version}</version>
</dependency>
<dependency>
<groupId>me.ahoo.cosid</groupId>
<artifactId>cosid-jdbc</artifactId>
Expand All @@ -20,16 +29,10 @@
```
:::

## JdbcIdSegmentDistributor

<p align="center" >
<img src="../../public/assets/design/SegmentId.png" alt="SegmentId"/>
</p>

使用关系型数据库作为号段算法(`SegmentId`)的号段分发器。

### 创建 `cosid`

`cosid` 表作为号段分发器的号段分发记录表。

```sql
create table if not exists cosid
(
Expand All @@ -41,12 +44,9 @@ create table if not exists cosid
) engine = InnoDB;
```

## JdbcMachineIdDistributor

### 创建 `cosid_machine`

```sql

create table if not exists cosid_machine
(
name varchar(100) not null comment '{namespace}.{machine_id}',
Expand All @@ -63,3 +63,21 @@ create table if not exists cosid_machine
create index if not exists idx_namespace on cosid_machine (namespace);
create index if not exists idx_instance_id on cosid_machine (instance_id);
```

## 配置案例

```yaml {4,10,14}
spring:
datasource:
url: # Jdbc 分发器直接依赖 DataSource
cosid:
namespace: ${spring.application.name}
machine:
enabled: true # 可选,当需要使用雪花算法时,需要设置为 true
distributor:
type: jdbc
segment:
enabled: true # 可选,当需要使用号段算法时,需要设置为 true
distributor:
type: jdbc
```
32 changes: 31 additions & 1 deletion documentation/docs/guide/extensions/cosid-mongo.md
Original file line number Diff line number Diff line change
@@ -1,19 +1,49 @@
# CosId-Mongo 模块

[cosid-mongo](https://github.com/Ahoo-Wang/CosId/tree/main/cosid-mongo) 提供 **MongoDB** 的支持。实现了:

- `MachineIdDistributor`:作为**雪花算法**(`SnowflakeId`)的机器号分配器 (`MachineIdDistributor`)。
- `IdSegmentDistributor`:作为**号段算法**(`SegmentId`)的号段分发器 (`IdSegmentDistributor`)。

## 安装

::: code-group
```kotlin [Gradle(Kotlin)]
val cosidVersion = "latestVersion"
implementation("org.springframework.boot:spring-boot-starter-data-mongodb")
implementation("me.ahoo.cosid:cosid-mongo:${cosidVersion}")
```
```xml [Maven]
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
<version>${springboot.version}</version>
</dependency>
<dependency>
<groupId>me.ahoo.cosid</groupId>
<artifactId>cosid-mongo</artifactId>
<version>${cosid.version}</version>
</dependency>
</dependencies>
```
:::
:::

## 配置案例

```yaml {4,10,14}
spring:
data:
mongodb:
uri: # Mongo 分发器直接依赖 spring-data-mongodb,这样可以省去额外的配置。
cosid:
namespace: ${spring.application.name}
machine:
enabled: true # 可选,当需要使用雪花算法时,需要设置为 true
distributor:
type: mongo
segment:
enabled: true # 可选,当需要使用号段算法时,需要设置为 true
distributor:
type: mongo
```
46 changes: 30 additions & 16 deletions documentation/docs/guide/extensions/cosid-redis.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,25 @@
# CosId-Redis 模块

[cosid-spring-redis](https://github.com/Ahoo-Wang/CosId/tree/main/cosid-spring-redis) 使用**Redis**作为**雪花算法**(`SnowflakeId`) 的 机器号分配器 (`MachineIdDistributor`) 、**号段算法**(`SegmentId`)的号段分发器 (`IdSegmentDistributor`)。
[cosid-spring-redis](https://github.com/Ahoo-Wang/CosId/tree/main/cosid-spring-redis) 模块提供 *Redis* 的支持。实现了:

- `MachineIdDistributor`:作为**雪花算法**(`SnowflakeId`)的机器号分配器 (`MachineIdDistributor`)。
- `IdSegmentDistributor`:作为**号段算法**(`SegmentId`)的号段分发器 (`IdSegmentDistributor`)。

## 安装

::: code-group
```kotlin [Gradle(Kotlin)]
val cosidVersion = "latestVersion"
implementation("org.springframework.boot:spring-boot-starter-data-redis")
implementation("me.ahoo.cosid:cosid-spring-redis:${cosidVersion}")
```
```xml [Maven]
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
<version>${springboot.version}</version>
</dependency>
<dependency>
<groupId>me.ahoo.cosid</groupId>
<artifactId>cosid-spring-redis</artifactId>
Expand All @@ -20,20 +29,25 @@
```
:::

## SpringRedisIdSegmentDistributor

<p align="center" >
<img src="../../public/assets/design/SegmentId.png" alt="SegmentId"/>
</p>

使用**Redis**作为号段算法(`SegmentId`)的号段分发器。

## SpringRedisMachineIdDistributor
## 配置案例

[CosId-Example-Redis](https://github.com/Ahoo-Wang/CosId/tree/main/examples/cosid-example-redis)

```yaml {4,10,14}
spring:
data:
redis:
host: localhost # Redis 分发器直接依赖 spring-data-redis,这样可以省去额外的配置。
cosid:
namespace: ${spring.application.name}
machine:
enabled: true # 可选,当需要使用雪花算法时,需要设置为 true
distributor:
type: redis
segment:
enabled: true # 可选,当需要使用号段算法时,需要设置为 true
distributor:
type: redis
```
<p align="center" >
<img src="../../public/assets/design/MachineIdDistributor.png" alt="SegmentId"/>
</p>
<p align="center">
<img src="../../public/assets/design/Machine-Id-Safe-Guard.png" alt="Machine Id Safe Guard"/>
</p>

0 comments on commit 658cdee

Please sign in to comment.