add method

This commit is contained in:
Looly 2021-06-28 21:58:28 +08:00
parent 5719c28158
commit 60999194d1

View File

@ -105,7 +105,9 @@ public class IdUtil {
* @param workerId 终端ID
* @param datacenterId 数据中心ID
* @return {@link Snowflake}
* @deprecated 此方法容易产生起义多个Snowflake实例产生的ID会产生重复此对象在单台机器上必须单例
*/
@Deprecated
public static Snowflake createSnowflake(long workerId, long datacenterId) {
return new Snowflake(workerId, datacenterId);
}
@ -137,6 +139,57 @@ public class IdUtil {
return Singleton.get(Snowflake.class, workerId, datacenterId);
}
/**
* 获取单例的Twitter的Snowflake 算法生成器对象<br>
* 分布式系统中有一些需要使用全局唯一ID的场景有些时候我们希望能使用一种简单一些的ID并且希望ID能够按照时间有序生成
*
* <p>
* snowflake的结构如下(每部分用-分开):<br>
*
* <pre>
* 0 - 0000000000 0000000000 0000000000 0000000000 0 - 00000 - 00000 - 000000000000
* </pre>
* <p>
* 第一位为未使用接下来的41位为毫秒级时间(41位的长度可以使用69年)<br>
* 然后是5位datacenterId和5位workerId(10位的长度最多支持部署1024个节点<br>
* 最后12位是毫秒内的计数12位的计数顺序号支持每个节点每毫秒产生4096个ID序号
*
* <p>
* 参考http://www.cnblogs.com/relucent/p/4955340.html
*
* @param workerId 终端ID
* @return {@link Snowflake}
* @since 5.7.3
*/
public static Snowflake getSnowflake(long workerId) {
return Singleton.get(Snowflake.class, workerId);
}
/**
* 获取单例的Twitter的Snowflake 算法生成器对象<br>
* 分布式系统中有一些需要使用全局唯一ID的场景有些时候我们希望能使用一种简单一些的ID并且希望ID能够按照时间有序生成
*
* <p>
* snowflake的结构如下(每部分用-分开):<br>
*
* <pre>
* 0 - 0000000000 0000000000 0000000000 0000000000 0 - 00000 - 00000 - 000000000000
* </pre>
* <p>
* 第一位为未使用接下来的41位为毫秒级时间(41位的长度可以使用69年)<br>
* 然后是5位datacenterId和5位workerId(10位的长度最多支持部署1024个节点<br>
* 最后12位是毫秒内的计数12位的计数顺序号支持每个节点每毫秒产生4096个ID序号
*
* <p>
* 参考http://www.cnblogs.com/relucent/p/4955340.html
*
* @return {@link Snowflake}
* @since 5.7.3
*/
public static Snowflake getSnowflake() {
return Singleton.get(Snowflake.class);
}
/**
* 获取数据中心ID<br>
* 数据中心ID依赖于本地网卡MAC地址