常用工具類(一):ID生成
阿新 • • 發佈:2019-01-26
由於在Java中64bit的整數是long型別,所以在Java中SnowFlake演算法生成的id就是long來儲存的。
SnowFlake可以保證:
- 所有生成的id按時間趨勢遞增
- 整個分散式系統內不會產生重複id(因為有datacenterId和workerId來做區分)
示例程式碼:
package nyfz.util; import org.apache.commons.lang3.RandomUtils; import com.relops.snowflake.Snowflake; public class IdUtil { private static Snowflake s = new Snowflake(RandomUtils.nextInt(0, 1024)); public static long next(){ return s.next(); } }
pom.xml新增依賴:
<dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> </dependency> <dependency> <groupId>com.relops</groupId> <artifactId>snowflake</artifactId> <version>1.1</version> </dependency>