面试题:在分布式系统,你能想出来几种生成唯一ID的方案?( 十 )

/// <summary>
   /// From: https://github.com/twitter/snowflake
   /// An object that generates IDs.
   /// This is broken into a separate class in case
   /// we ever want to support multiple worker threads
   /// per process
   /// </summary>
   public class IdWorker
   {
       private long workerId;
       private long datacenterId;
       private long sequence = 0L;

       private static long twepoch = 1288834974657L;

       private static long workerIdBits = 5L;
       private static long datacenterIdBits = 5L;
       private static long maxWorkerId = -1L ^ (-1L << (int)workerIdBits);
       private static long maxDatacenterId = -1L ^ (-1L << (int)datacenterIdBits);

推荐阅读