snowflake-id-solon-cloud-plugin
<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