/*** 全局唯一ID生成器*/
publicclassIdGen {
privatelongworkerId;
privatelongdatacenterId;
privatelongsequence = 0L;
privatelongtwepoch = 1288834974657L;//Thu, 04 Nov 2010 01:42:54 GMTprivatelongworkerIdBits = 5L;//节点ID长度privatelongdatacenterIdBits = 5L;//数据中心ID长度privatelongmaxWorkerId = -1L ^ (-1L <
privatelonglastTimestamp = -1L;
privatestaticclassIdGenHolder {
privatestaticfinalIdGen instance =newIdGen();
}
publicstaticIdGen get(){
returnIdGenHolder.instance;
}
publicIdGen() {
this(0L, 0L);
}
publicIdGen(longworkerId,longdatacenterId) {
if(workerId > maxWorkerId || workerId
thrownewIllegalArgumentException(String.format("worker Id can't be greater than %d or less than 0", maxWorkerId));
}
if(dat