1. 程式人生 > >常用工具類(一):ID生成

常用工具類(一):ID生成

由於在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>