Twitter snowflake算法

算法原理

  • 1位符号位,始终为0;
  • 41位时间戳,一般实现上不会存储当前的时间戳,而是时间戳的差值(当前时间-固定的开始时间),这样可以使产生的id从更小值开始;41位时间戳可以使用69年,1L«41/(1000L*60*60*24*365) = 69年
  • 10位节点位,前五位数据中心标识,后五位机器标识,可以部署1024个节点
  • 12位序列号,支持同一个节点同一毫秒可以生成4069个ID