maxmall-common/maxmall-common-zk/src/main/java/com/maxmall/zk/generator/UniqueIdGenerator.java
(开头部分) 3KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
package com.maxmall.zk.generator;
/**
* 分布式唯一ID生成器
*
* @author maxmall.net@gmail.com
*/
public class UniqueIdGenerator implements IdGenerator {
/**
* 开始使用该算法的时间为: 2017-01-01 00:00:00
*/
private static final long START_TIME = 1483200000000L;
/**
* worker id的bit数,最多支持8192个app和host的组合(即在N个服务器上每个服务器部署M个项目,总共部署N*M=8192)
*/
private static final int APP_HOST_ID_BITS = 13;
/**
* 序列号,支持单节点最高1000*1024的并发
*/
private final static int SEQUENCE_BITS = 10;
/**
* 最大的app host id,8091
*/
private final static long MAX_APP_HOST_ID = ~(-1L << APP_HOST_ID_BITS);
/**
* 最大的序列号,1023
*/
private final static long MAX_SEQUENCE = ~(-1L << SEQUENCE_BITS);
/**
* app host编号的移位
*/
private final static long APP_HOST_ID_SHIFT = SEQUENCE_BITS;
/**
* 时间戳的移位
*/
private final static long TIMESTAMP_LEFT_SHIFT = APP_HOST_ID_BITS + APP_HOST_ID_SHIFT;
/**
* 该项目的app host id,对应着为某台机器上的某个项目分配的serviceId(注意区分Span中的serviceId)
*/
private long appHostId;
/**
* 上次生成ID的时间戳
*/
private long lastTimestamp = -1L;
/**
* 当前毫秒生成的序列
*/
private long sequence = 0L;
/**
* 单例
后面还有 92 行代码,购买后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读 AI
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
