当前位置: 首页 > news >正文

【Java笔记】分布式id生成-雪花算法

随着业务的增长,有些表可能要占用很大的物理存储空间,为了解决该问题,后期使用数据库分片技术。将一个数据库进行拆分,通过数据库中间件连接。如果数据库中该表选用ID自增策略,则可能产生重复的ID,此时应该使用分布式ID生成策略来生成ID。
在这里插入图片描述
snowflake是Twitter开源的分布式ID生成算法,结果是一个long型的ID。其核心思想是:使用41bit作为毫秒数,10bit作为机器的ID(5个bit是数据中心,5个bit的机器ID),12bit作为毫秒内的流水号(意味着每个节点在每毫秒可以产生 4096 个 ID),最后还有一个符号位,永远是0
在这里插入图片描述

mybatis-plus已经集成了雪花算法,完成以下两步即可在项目中集成雪花算法

第一:在实体类中的id上加入如下配置,指定类型为id_worker

@TableId(value = "id",type = IdType.ID_WORKER)
private Long id;

第二:在application.yml文件中配置数据中心id和机器id

mybatis-plus:mapper-locations: classpath*:mapper/*.xml# 设置别名包扫描路径,通过该属性可以给包中的类注册别名type-aliases-package: com.heima.model.article.pojosglobal-config:datacenter-id: 1workerId: 1

datacenter-id:数据中心id(取值范围:0-31)

workerId:机器id(取值范围:0-31)

http://www.lryc.cn/news/140871.html

相关文章:

  • STM32f103入门(2)流水灯蜂鸣器
  • Web Worker的使用
  • STM32 Cubemx配置串口收发
  • ndoe+mysql+express基础应用
  • 后端项目开发:集成日志
  • 20-GIT版本控制
  • 解决前后端交互Long类型精度丢失的问题
  • 回归预测 | MATLAB实现GA-ELM遗传算法优化极限学习机多输入单输出回归预测(多指标,多图)
  • SpringCloud学习笔记(九)_使用Java类加载SpringBoot、SpringCloud配置文件
  • 三次握手四次挥手之全连接半连接队列
  • Racknerd便宜高性价比服务器汇总
  • JavaScript 基础知识回顾与复习---关于this
  • Lua之Lua源文件批量转换为luac字节码文件
  • 简历V1.0问题合集 8/25-26
  • P1052 [NOIP2005 提高组] 过河
  • ArrayList和Vector及LinkedList的区别
  • HVV爆火漏洞:最新 WPS RCE (远程命令执行) 复现
  • 我的128天创作纪念日-东离与糖宝
  • 卷积神经网络——下篇【深度学习】【PyTorch】【d2l】
  • cas md5加密
  • [管理与领导-51]:IT基层管理者 - 8项核心技能 - 6 - 流程
  • 天翼物联、汕头电信与汕头大学共建新一代信息技术与数字创新(物联网)联合实验室
  • Failed to load local image resource/images/1.jpg无法加载本地图片资源
  • Go和Java实现责任链模式
  • C#+GDAL影像处理笔记08:生成DEM的图阔范围线
  • 敏捷研发管理软件及敏捷管理流程
  • Mac OS 13.4.1 搜狗输入法导致的卡顿问题
  • vue 简单实验 自定义组件 局部注册
  • Resnet模型详解
  • AI 绘画Stable Diffusion 研究(十六)SD Hypernetwork详解