mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-05-09 23:51:34 +08:00
add method
This commit is contained in:
parent
5719c28158
commit
60999194d1
@ -105,7 +105,9 @@ public class IdUtil {
|
|||||||
* @param workerId 终端ID
|
* @param workerId 终端ID
|
||||||
* @param datacenterId 数据中心ID
|
* @param datacenterId 数据中心ID
|
||||||
* @return {@link Snowflake}
|
* @return {@link Snowflake}
|
||||||
|
* @deprecated 此方法容易产生起义:多个Snowflake实例产生的ID会产生重复,此对象在单台机器上必须单例!
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
public static Snowflake createSnowflake(long workerId, long datacenterId) {
|
public static Snowflake createSnowflake(long workerId, long datacenterId) {
|
||||||
return new Snowflake(workerId, datacenterId);
|
return new Snowflake(workerId, datacenterId);
|
||||||
}
|
}
|
||||||
@ -137,6 +139,57 @@ public class IdUtil {
|
|||||||
return Singleton.get(Snowflake.class, workerId, datacenterId);
|
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<br>
|
||||||
* 数据中心ID依赖于本地网卡MAC地址。
|
* 数据中心ID依赖于本地网卡MAC地址。
|
||||||
|
Loading…
x
Reference in New Issue
Block a user