分布式id---雪花算法
为什么要用分布式id
随着业务的增长,后期可能会对数据库进行拆分的操作,通过数据库中间间链接。如果数据库表中的id采取的是自增策略,则会产生重复的id。使用分布式id便是为了避免此类现象。
雪花算法
snowflake是Twitter开源的分布式ID生成算法,结果是一个long型的ID。其核心思想是:使用41bit作为毫秒数,10bit作为机器的ID(5个bit是数据中心,5个bit的机器ID),12bit作为毫秒内的流水号(意味着每个节点在每毫秒可以产生 4096 个 ID),最后还有一个符号位,永远是0
基于MyBatisPlus实现分布式id
mybatis-plus已经集成了雪花算法,完成以下两步即可在项目中集成雪花算法
- 第一:在实体类中的id上加入如下配置,指定类型为id_worker
点击查看代码
@TableId(value = "id",type = IdType.ID_WORKER)
private Long id;
点击查看代码
mybatis-plus:
mapper-locations: classpath*:mapper/*.xml
# 设置别名包扫描路径,通过该属性可以给包中的类注册别名
type-aliases-package: com.wzh.model.article.pojos
global-config:
datacenter-id: 1
workerId: 1
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~