雪花算法-增加基因
参考文章:
https://www.zhihu.com/question/64709787/answer/2915029826
https://www.cnblogs.com/mikechenshare/p/16787023.html
增加基因
将需要加入的基因(例如用户ID)进行模余1024得到的数值,为机器ID,再将机器ID模余32得到的是雪花算法数据中心ID以及机器ID(可以根据自身的需要设定,如您需要设定的数据中心ID为4位则模余24=16,得到的是数据中心的ID,机器ID为6位则模余26=64,得到的就是机器的ID,分别将数据中心ID以及机器ID设置到雪花算法内,获取得到包含基因的ID。
解基因
将包含基因的ID进行解析得到基因
public static Integer getWorkerId(Long uuid) {
Long workerId = uuid >> 12 & 0x3ff;
return workerId.intValue();
}
其中0x3ff为1023的16进制的值,对应的二进制为1111111111,