Java口试28-谈谈常用的分布式ID筹划方案

[复制链接]
发表于 2026-2-13 21:25:42 | 显示全部楼层 |阅读模式

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

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

×
起首,分布式全局ID的办理方案有很多,比如:

  • 使用Mysql的全局表
  • 使用Zookeeper的有序节点
  • 使用MongoDB的objectid
  • redis的自增id
  • UUID等等
这些方案只是办理根本的id唯一性题目,在实际生产环境中,须要构建一个全局唯一id还须要思量更多的因素:

  • 有序性,有序的ID可以大概更好简直认数据的位置,以及B+树的存储布局中,范围查询的服从更高,而且可以提升B+树数据维护的服从;
  • 安全性,制止恶意爬取数据造成数据泄漏;
  • 可用性,ID天生体系的可用性要求非常高,一旦出现故障就会造成业务不可用的题目;
  • 性能,全局ID天生体系须要满足整个公司的业务需求,涉及到亿级别的调用,对性能要求较高。
因此,假如我们选择数据库的全局表,每获取一次id就须要更新数据库性能上限比力显着,而且基于数据库构建高扩展和高性能的办理方案难度很大。以是,如今市面上主流的办理方案是基于Twitter早期开源的snowflake雪花算法它是由64位长度构成的全局id天生算法,通过对64位举行区间分别来表述差别寄义实现唯一性。它的利益是:算法实现简单,不存在太多外部依赖,可以天生故意义的有序编号。基于位运算,性能也很好,Twitter测试的峰值是10万个每秒。
别的,美国公司开源了一个全局唯一id天生体系leaf,它内里也用到了雪花算法去构建全局唯一id,而且在高性能和高可用方面,做了很多优化,为美团内部业务提供了每天上亿次的调用。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!qidao123.com:ToB企服之家,中国第一个企服评测及软件市场,开放入驻,技术点评得现金
回复

使用道具 举报

登录后关闭弹窗

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