什么是雪花算法?啥原理?附Java实现!( 三 )


* main 测试类
* @param args
*/
public static void main(String[] args) {
System.out.println(1&4596);
System.out.println(2&4596);
System.out.println(6&4596);
System.out.println(6&4596);
System.out.println(6&4596);
System.out.println(6&4596);
// IdWorker worker = new IdWorker(1,1,1);
// for (int i = 0; i < 22; i++) {
// System.out.println(worker.nextId());
// }
}
}
SnowFlake 算法的优点:
 

  1. 高性能高可用:生成时不依赖于数据库 , 完全在内存中生成 。
  2. 容量大:每秒钟能生成数百万的自增 ID 。
  3. ID 自增:存入数据库中 , 索引效率高 。
     
 
SnowFlake 算法的缺点:
依赖与系统时间的一致性 , 如果系统时间被回调 , 或者改变 , 可能会造成 ID 冲突或者重复 。
实际中我们的机房并没有那么多 , 我们可以改进改算法 , 将 10bit 的机器 ID 优化 , 成业务表或者和我们系统相关的业务 。
 
作者:雨夜青草 https://blog.csdn.NET/lq18050010830/article/details/89845790




推荐阅读