欢迎光临
我们一直在努力

撸一篇实战教程,分布式Id算法:yitter-idgenerator(雪花漂移)

做积极的人,而不是积极废人!

每天更新文章,每天掉亿点点头发...

最近几天在做分布式id的技术选型,传统的雪花ID这个就不多说了,还有一些大厂的各种开源算法,五花八门,前天给大家讲了一下

美团的Leaf

,今天再来看一个非大厂的开源算法,江湖俗称“雪花漂移”。

源码

https://github.com/yitter/idgenerator

https://gitee.com/yitter/idgenerator

简介

yitter-idgenerator 是基于雪花算法进行改进的分布式ID生成算法,解决了返回给前端的id过长问题 + 时钟回拨问题

集成时需要为每个服务设置唯一的机器号,才能保证生成的Id不会重复(集群情况下设置每个服务对应的机器号唯一,单体不需考虑)。

方案

基于服务启动时指定唯一机器号

在程序服务启动时通过分布式锁 Redisson(基于Redis实现),对每台机器通过IP 对应一个 唯一的机器号(自增)映射,并保存在Redis中。缓存一次后,下次启动直接读取缓存即可

撸一篇实战教程,分布式Id算法:yitter-idgenerator(雪花漂移)

基于注册中心指定唯一机器号

从注册中心读取服务,增加多一个机器号服务来统一分配

撸一篇实战教程,分布式Id算法:yitter-idgenerator(雪花漂移)

实现

本文基于第一种方案,通过Redisson实现,将其集成到springboot工程中做测试。

Maven依赖

关键部分代码

启动配置代码如下

上述配置都妥了之后,可直接在代码中生成分布式ID了。

效果

  • 海报
海报图正在生成中...
赞(0) 打赏
声明:
1、本博客不从事任何主机及服务器租赁业务,不参与任何交易,也绝非中介。博客内容仅记录博主个人感兴趣的服务器测评结果及一些服务器相关的优惠活动,信息均摘自网络或来自服务商主动提供;所以对本博客提及的内容不作直接、间接、法定、约定的保证,博客内容也不具备任何参考价值及引导作用,访问者需自行甄别。
2、访问本博客请务必遵守有关互联网的相关法律、规定与规则;不能利用本博客所提及的内容从事任何违法、违规操作;否则造成的一切后果由访问者自行承担。
3、未成年人及不能独立承担法律责任的个人及群体请勿访问本博客。
4、一旦您访问本博客,即表示您已经知晓并接受了以上声明通告。
文章名称:《撸一篇实战教程,分布式Id算法:yitter-idgenerator(雪花漂移)》
文章链接:https://www.456zj.com/36638.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址