```xml
<dependency>
    <groupId>org.noear</groupId>
    <artifactId>snowflake-id-solon-cloud-plugin</artifactId>
</dependency>
```

#### 1、描述

分布式扩展插件。基于 snowflake 算法适配的 solon cloud 插件。提供ID生成服务。


#### 3、配置示例

以下为默认配置（一般不用配置，默认即可）：

```yml
solon.cloud.snowflake.id:
    start: "1577808000000" #默认为 2020-01-01 00:00:00 的时间戳，差不多用69年
    workId: 0 #默认为 0（即，根据本机IP自动生成），v2.1.3 后支持
```

关键属性说明：


|  参数 | 说明  | 
| -------- | -------- | 
| start     | 开始时间戳，差不多可以用69年。可配置     | 
| workId     | 工作id，根据本机IP自动生成。v2.1.3 后可配置     | 
| dataBlock     | 数据块，默认为服务名（即：solon.app.name 属性配置），或编码时指定    | 


#### 2、应用示例

```java
public class DemoApp {
    public void main(String[] args) {
        SolonApp app = Solon.start(DemoApp.class, args);

        //用默认的分组与服务名(它们会产生 DataBlock)
        long id = CloudClient.id().generate();
        
        //指定分组与服务名(它们会产生 DataBlock)
        //long id2 =CloudClient.idService("demo","demoapi").generate();
    }
}
```

#### 3、注意事项

分布式id的生成，是有可能出现重复的： <mark>比如集群内的实例，服务名和IP都相同</mark>。当使用 docker 集群且没有网桥时，就可能会出现此种情况。此时，可通过环境变量指定：(v2.1.3 后支持)

```
docker run -e solon.cloud.snowflake.id.workId='1' -d -p 8080:8080 demoapi:v1
```

