Twitter的分布式自增ID算法Snowflake     

```
package org.cxytiandi.task.util;

import java.lang.management.ManagementFactory;
import java.net.InetAddress;
import java.net.NetworkInterface;

/**

  • 名称:IdWorker.java

  • 描述:分布式自增长ID

    1.  
  • Twitter的 Snowflake JAVA实现方案
  • 核心代码为其IdWorker这个类实现,其原理结构如下,我分别用一个0表示一位,用—分割开部分的作用:
  • 1||0—-0000000000 0000000000 0000000000 0000000000 0 —- 00000 —-00000 —-000000000000
  • 在上面的字符串中,第一位为未使用(实际上也可作为long的符号位),接下来的41位为毫秒级时间,
  • 然后5位datacenter标识位,5位机器ID(并不算标识符,实际是为线程标识),

扫描下方二维码,加入Java方向技术交流讨论群。暗号:加群