...
前言我们的数据库在设计时一般有两个ID,自增的id为主键,还有一个业务ID使用UUID生成。自增id在需要分表的情况下做为业务主键不太理想,所以我们增加了uuid作为业务ID,有了业务id仍然还存在自增id的原因具体我也说不清楚,只知道和插入的性能以及db的要求有关。 我个人一直想将这两个ID换成一个字段来处理,所以要求这个id是数字类似的,且是趋抛增长的,这样mysql创建索引以及查询时性能会比 ...
2019-03-19 11:54 0 2723 推荐指数:
...
1、新建一个id生成的类 SnowFlake 2、为防止多线程生成重复的id,这边新建了一个调用生成id的单例工具 其中machineId和datacenterId可以放在配置文件中 最后直接调用:GuuidUtil.getUUID();就可以直接生成id ...
...
Snowflake生成的是Long类型的ID,一个Long类型占8个字节,每个字节占8比特,也就是说一个Long类型占64个比特。 Snowflake ID组成结构:正数位(占1比特)+ 时间戳(占41比特)+ 机器ID(占5比特)+ 数据中心(占5比特)+ 自增值(占12比特),总共64比特 ...
JavaScript生成有序GUID或者UUID,这时就想到了雪花算法。 原理介绍: snowFlake算法最终生成ID的结果为一个64bit大小的整数,结构如下图: 解释: 1bit。二进制中最高位为1表示负数,但是我们最终生成的ID一般都是整数,所以这个最高位固定 ...
生成一个随机的 ID 有很多种做法,比如说 GUID 和 UUID。但如果想要有序,可以插入数据库中做数字主键,那就有了雪花算法。雪花算法得到的是个比较大的数字,比较大,而 JS 中 Number 类型的最大值 Number.MAX_SAFE_INTEGER:9007199254740991 ...
import java.lang.management.ManagementFactory;import java.net.InetAddress;import java.net.NetworkInterface;/** * <p>描述:分布式自增长ID</p> * < ...
这个工具直接调用就可以了,用法和写法如下: 代码: 这个是雪花算法的写法: 具体的调用: ...