当前位置:首页 » 《随便一记》 » 正文

spring boot中使用雪花算法生成雪花ID

11 人参与  2023年04月15日 16:04  分类 : 《随便一记》  评论

点击全文阅读


目录

1、什么是雪花算法

2、雪花算法的优缺点

3、spring boot项目中使用雪花算法使用


1、什么是雪花算法

雪花算法(Snowflake)是一种生成全局唯一ID的算法,由Twitter公司开发。它可以在分布式系统中生成全局唯一的ID,解决分布式系统中的数据合并和分片等问题。

雪花算法生成的ID是一个64位的长整型数字,由以下部分组成:

1个bit:符号位,始终为0。

41个bit:时间戳,精确到毫秒级别,可以使用69年。

10个bit:工作机器ID,可以部署在1024个节点上。

12个bit:序列号,每个节点每毫秒内最多可以生成4096个ID。

雪花算法生成ID的过程非常简单,首先记录一个开始时间,然后每次生成ID时计算当前时间和开始时间之间的时间差,将时间戳和工作机器ID、序列号组合成一个64位的长整型数字,返回给调用方。

雪花算法是一种高效、可靠的全局唯一ID生成算法,已经被广泛应用于分布式系统中。

2、雪花算法的优缺点

优点:

全局唯一:雪花算法生成的ID是全局唯一的,可以用于分布式系统中的数据分片和数据合并,避免了ID冲突的问题。

时间有序:雪花算法生成的ID中包含了时间戳信息,可以根据ID的大小推算出生成的时间,方便进行数据排序和查询。

高性能:雪花算法生成ID的速度很快,可以满足高并发的场景需求。

可扩展性:雪花算法的数据结构相对简单,易于扩展和修改。

缺点:

依赖于系统时钟:雪花算法生成ID的过程中依赖于系统时钟,如果系统时钟发生回拨,可能会导致生成的ID出现重复。

长度固定:雪花算法生成的ID长度固定为64位,可能会导致存储和传输成本较高。

不支持分布式计算:雪花算法生成ID的过程是单线程的,不能支持分布式计算。

        雪花算法是一种高效、可靠的全局唯一ID生成算法,但需要注意时钟回拨和长度固定等缺点。在选择ID生成算法时,需要综合考虑应用场景和需求,选择适合的算法。

3、spring boot项目中使用雪花算法使用

1、引入雪花算法依赖

<dependency>    <groupId>com.github.beyondfengyu</groupId>    <artifactId>snowflake-spring-boot-starter</artifactId>    <version>1.0.0</version></dependency>

2、在配置文件中配置雪花算法参数

在 application.yml 或 application.properties 中配置Snowflake算法的参数:

snowflake:  data-center-id: 1 # 数据中心ID,可以使用机器IP地址最后一段数字,范围为0-31  machine-id: 1 # 机器ID,可以使用服务器编号,范围为0-31

3、注入雪花算法对象

在需要生成唯一ID的类中,使用 @Autowired 注解注入 SnowflakeIdWorker 对象:

@Servicepublic class UserService {    @Autowired    private SnowflakeIdWorker snowflakeIdWorker;    public Long generateUserId() {        return snowflakeIdWorker.nextId();    }}

使用snowflakeIdWorker.nextId()方法既可以获取生成的雪花ID。


点击全文阅读


本文链接:http://zhangshiyu.com/post/59622.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • 苔藓爬满旧日诺言全书+后续+结局顾砚廷慕晚夏免费苔藓爬满旧日诺言全书+后续+结局顾砚廷慕晚夏全书全
  • [我掉蛇女马甲后,点天灯假死丈夫悔疯了]免费试读_婆婆丁若菱蛇女精彩节选推荐
  • 他日若是同淋雪结局+番外(夏尔若林闻舟)他日若是同淋雪结局+番外结局_夏尔若林闻舟列表_笔趣阁(他日若是同淋雪结局+番外)
  • 他心非石反转剧情试读片段_安茗宝宝心掏后续更新+番外
  • 许星森纪冰雪(日暮青山绿渐隐许星森纪冰雪结局+番外)_(许星森纪冰雪)列表_笔趣阁(日暮青山绿渐隐许星森纪冰雪结局+番外)
  • 全文潮痕蚀月光(池清禾***宸)列表_全文潮痕蚀月光
  • 「江月随人处处圆」小说无删减版在线免费阅读_[陆晨小姐孟苒]精彩章节免费试读
  • 阮雾梨闻砚辞阮见微结局+番外全书+后续+结局(闻砚辞阮雾梨)列表_阮雾梨闻砚辞阮见微结局+番外(闻砚辞阮雾梨)阮雾梨闻砚辞阮见微结局+番外全书+后续+结局在线
  • 潮痕蚀月光结局+番外池清禾***宸(潮痕蚀月光结局+番外)全书免费池清禾***宸_潮痕蚀月光结局+番外池清禾***宸列表_笔趣阁(池清禾***宸)
  • 苔藓爬满旧日诺言一口气读完全书+后续全书+后续+结局(慕晚夏顾砚廷)列表_苔藓爬满旧日诺言一口气读完全书+后续(慕晚夏顾砚廷)苔藓爬满旧日诺言一口气读完全书+后续全书+后续+结局在线
  • 「孕弟」反转剧情碎片化试读_[耀祖弟弟子宫]小说精彩节选试读
  • 旧梦随风去结局+番外(姜予宁沈昭寒)列表_旧梦随风去结局+番外(姜予宁沈昭寒)全书+后续+结局在线

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1