为什么要用雪花算法?

2023-12-18 10:55:51

目录

一、能解决什么问题?

二、详解雪花算法

三、如何实现雪花算法?


一、能解决什么问题?

其实就是用来解决分布式ID,随着业务的增长,你的某张表可能要占用很大的物理存储空间,为了解决该问题,后期使用数据库分片技术。将一个数据库进行拆分,通过数据库中间件连接。如果数据库中该表选用ID自增策略,则可能产生重复的ID,此时应该使用分布式ID生成策略来生成ID。

这么一对比,还是雪花算法比较占优势。

二、详解雪花算法

snowflake是Twitter开源的分布式ID生成算法,结果是一个long型的ID。其核心思想是:使用41bit作为毫秒数,10bit作为机器的ID(5个bit是数据中心,5个bit的机器ID),12bit作为毫秒内的流水号(意味着每个节点在每毫秒可以产生4096个ID),最后还有一个符号位,永远是0。

三、如何实现雪花算法?

使用MybatisPlus生成雪花算法,代码很简单:

@Data
@TableName(value = "t_user")
public class User {
    // IdType.ASSIGN_ID代表生成雪花算法
    @TableId(value = "id", type = IdType.ASSIGN_ID)
    private Long id;

文章来源:https://blog.csdn.net/qq_38196449/article/details/135054888
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。