Java实现雪花算法获取id

[复制链接]
发表于 2025-12-9 21:53:08 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
Java实现雪花算法获取id

在 Java 中实现雪花算法(Snowflake)时,通常会筹划一个工具类来生玉成局唯一的 ID。这个工具类可以封装雪花算法的逻辑,并提供简朴的接口来天生 ID。
以下是一个完备的 Java 工具类实现雪花算法的例子:
  1. public class SnowflakeIdGenerator {
  2.    
  3.    
  4.     // 起始的时间戳 (自定义纪元时间,通常为某个固定日期)
  5.     private final long epoch = 1728571440L; // 这个时间戳是Twitter的纪元时间戳,可以自己定义
  6.     // 每个部分占用的位数
  7.     private final long workerIdBits = 5L; // 机器ID所占的位数
  8.     private final long datacenterIdBits = 5L; // 数据中心ID所占的位数
  9.     private final long sequenceBits = 12L; // 序列号所占的位数
  10.     // 最大值计算
  11.     private final long maxWorkerId = -1L ^ (-1L << workerIdBits); // 机器ID最大值
  12.     private final long maxDatacenterId = -1L ^ (-1L << datacenterIdBits); // 数据中心ID最大值
  13.     private final long maxSequence = -
复制代码
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表