Try   HackMD

Snowflake ID Implementation Using littlenb/snowflake


Dependency

<dependency>
	<groupId>com.littlenb</groupId>
	<artifactId>snowflake</artifactId>
	<version>1.0.5</version>
</dependency>

GitHub repository is here.

Code Snippet

import com.littlenb.snowflake.sequence.IdGenerator;
import com.littlenb.snowflake.support.ElasticIdGeneratorFactory;
import com.littlenb.snowflake.worker.SimpleWorkerIdAssigner;

/**
 * Omitted for brevity
 */

	private static final IdGenerator ID_GENERATOR;

	static {
		ElasticIdGeneratorFactory idGeneratorFactory = new ElasticIdGeneratorFactory();
		idGeneratorFactory.setEpochTimestamp(
			Long.parseLong(
				System.getenv("EPOCH_TIMESTAMP")
			)
		);
		idGeneratorFactory.setTimeBits(41);
		idGeneratorFactory.setTimeUnit(TimeUnit.MILLISECONDS);
		idGeneratorFactory.setWorkerBits(12);
		idGeneratorFactory.setSeqBits(10);

		ID_GENERATOR = idGeneratorFactory.create(
			new SimpleWorkerIdAssigner(
				Long.parseLong(
					System.getenv("WORKER_ID")
				)
			)
		);
	}

	public static long nextSnowflakeId() {
		return ID_GENERATOR.nextId();
	}