Solon v2.7.5

snowflake-id-solon-cloud-plugin

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

1、描述

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

3、配置示例

以下为默认配置(一般不用配置,默认即可):

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、应用示例

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的生成,是有可能出现重复的: 比如集群内的实例,服务名和IP都相同。当使用 docker 集群且没有网桥时,就可能会出现此种情况。此时,可通过环境变量指定:(v2.1.3 后支持)

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