首页 > 编程语言 >分布式id---雪花算法

分布式id---雪花算法

时间:2023-07-03 23:45:46浏览次数:34  
标签:雪花 id --- 毫秒 算法 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已经集成了雪花算法,完成以下两步即可在项目中集成雪花算法

  1. 第一:在实体类中的id上加入如下配置,指定类型为id_worker
点击查看代码
@TableId(value = "id",type = IdType.ID_WORKER)
private Long id;
2. 第二:在application.yml文件中配置数据中心id和机器id
点击查看代码
mybatis-plus:
  mapper-locations: classpath*:mapper/*.xml
  # 设置别名包扫描路径,通过该属性可以给包中的类注册别名
  type-aliases-package: com.wzh.model.article.pojos
  global-config:
    datacenter-id: 1
    workerId: 1

标签:雪花,id,---,毫秒,算法,ID,分布式
From: https://www.cnblogs.com/wzh-Official/p/17524478.html

相关文章

  • day05--23.7.3JDK、JRE、JVM以及开发环境搭建
    JDK、JRE、JVMJDK:JavaDevelopmentKit--JAVA开发者工具--用于程序开发java--编译运行javajavac--编译运行javajavadoc--java生成文档jar--java打包成应用JRE:JavaRuntimeEnvironment--JAVA运行时环境appletlibrariesJVM:JavaVirtualMachine--JAVA虚拟机java开发......
  • nohup、setsid 与 disown 的不同之处【转】
    nohup、setsid与disown都可以用来让需要长期运行的程序在退出终端后继续在后台运行。然而它们实现这一目的的原理不同,因此使用起来也有一些不同。  退出终端时发生了什么  让我们先看看终端退出时发生什么:  当终端被挂断或伪终端程序被关掉,若终端的CLO......
  • CSharp的@microsoft/signalr实时通信教程 - 前端 vue
    1.安装@microsoft/signalrpnpminstall@microsoft/signalr--save2.封装组件jsimport*assignalRfrom'@microsoft/signalr'exportfunctionSignalR(){const_signalR={connection:null,connectionStatus:false,build(url){consol......
  • 内置函数print-输出
    1.说明print内置函数是builtins模块的函数,用于向标准输出、文件打印数据 2.示例1help(print)2'''3Helponbuilt-infunctionprintinmodulebuiltins:45print(*args,sep='',end='\n',file=None,flush=False)6Printsthevalues......
  • 编程开发 --- vue是什么
    只面向视图层的html模板引擎只面向视图层指的是可以在浏览器独立运行且只关注视图。模板引擎指的是使得html具备完备编程语言的特性。比如if语句 Vue是一种用于构建用户界面的渐进式JavaScript框架。它是一个开源项目,由尤雨溪(EvanYou)开发,并得到了广泛的社区支持和贡献。Vue......
  • 入选德勤粤港澳大湾区及广州高科技高成长两大榜单,巨杉数据库引领分布式数据库弯道超车
    巨杉数据库凭借在分布式数据库领域的优异表现和突出成果,入选2022德勤粤港澳大湾区高科技高成长40强及明日之星和广州高科技高成长20强及明日之星两大榜单。近日,经德勤中国与大湾区科技创新服务中心、广东粤港澳大湾区研究院联合组织征集、评选及审定,公布了2022德勤粤港澳大湾区高......
  • Java--大数运算时的溢出问题
    Java--大数运算时的溢出问题一、前言​JDK7新特性,数字之间可以用下划线进行分割,便于阅读。二、代码示例publicclassDemo01{publicstaticvoidmain(String[]args){intmoney=10_0000_0000;intyears=20;inttotal1=money......
  • SequoiaDB分布式数据库2023.6月刊
    本月看点速览全球溯源中心系列成果发布,巨杉数据库受邀出席聚焦产业升级,斩获新一代信息技术创新企业推进产业生态,赋能行业发展青杉计划2023已开启,一起攀登更高的“杉” 全球溯源中心系列成果发布,巨杉数据库受邀出席6月19日,“链接世界预鉴未来”——全球溯源中心系列......
  • m基于simulink的PID控制器,模糊PID控制器以及MPC控制器性能对比仿真
    1.算法仿真效果matlab2022a仿真结果如下:        从图仿真结果可知,PID控制器,其超调较大,且控制器进入收敛状态时间也最长,。对于模糊PID控制器,其超调小于PID控制器,且收敛速度也较快,因此其性能优于传统的PID控制器。对于MPC控制器,其超调最小,控制器进入稳定状态速度也最快,......
  • P9431 [NAPC-#1] Stage3 - JRefreshers 题解
    传送门这个人赛时看错了几次题目导致样例调了1h。\(Sol1:n\leqslant10,T\leqslant10\)乱搞分。枚举跳跃的顺序,判断可不可行,最后取最大值,复杂度\(O((n-1)!)\)。\(Sol2:B\)感觉跟正解没什么关系,先说这个。特殊性质\(\mathbfB\):保证对于任意跳跃球\(u,v\),如......