mysql snowflake_雪花算法-snowflake
雪花算法-snowflake
分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。
有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。
而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移到Cassandra,因为Cassandra没有顺序ID生成机制,所以开发了这样一套全局唯一ID生成服务。
snowflake的结构如下(每部分用-分开):
0 - 0000000000 0000000000 0000000000 0000000000 0 - 00000 - 00000 - 000000000000
第一位为未使用,接下来的41位为毫秒级时间(41位的长度可以使用69年),然后是5位datacenterId和5位workerId(10位的长度最多支持部署1024个节点) ,最后12位是毫秒内的计数(12位的计数顺序号支持每个节点每毫秒产生4096个ID序号)
一共加起来刚好64位,为一个Long型。(转换成字符串后长度最多19)
snowflake生成的ID整体上按照时间自增排序,并且整个分布式系统内不会产生ID碰撞(由datacenter和workerId作区分),并且效率较高。经测试snowflake每秒能够产生26万个ID。
mysql snowflake_雪花算法-snowflake相关推荐
- Twitter的分布式雪花算法 SnowFlake 每秒自增生成26个万个可排序的ID (Java版)
分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的. 有些时候我们希望能使用一种简单一 ...
- 雪花算法snowflake分布式id生成原理详解,以及对解决时钟回拨问题几种方案讨论
文章目录 一.前言 二.雪花算法snowflake 1.基本定义 2.snowflake的优缺点 三.Java代码实现snowflake 1.组装生成id 2.计算最大值的几种方式 3.反解析ID 4 ...
- Twitter的分布式雪花算法 SnowFlake
为什么80%的码农都做不了架构师?>>> 原理 Twitter的雪花算法SnowFlake,使用Java语言实现. SnowFlake算法产生的ID是一个64位的整型,结构如下 ...
- java 有穷自动机_Java实现雪花算法(snowflake)
本文主要介绍了Java实现雪花算法(snowflake),分享给大家,具体如下: 简单描述 最高位是符号位,始终为0,不可用. 41位的时间序列,精确到毫秒级,41位的长度可以使用69年.时间位还有一 ...
- java雪花_Java实现雪花算法(snowflake)
本文主要介绍了Java实现雪花算法(snowflake),分享给大家,具体如下: 简单描述 最高位是符号位,始终为0,不可用. 41位的时间序列,精确到毫秒级,41位的长度可以使用69年.时间位还有一 ...
- 发号器:雪花算法(Snowflake)
雪花算法(Snowflake)是twitter公司内部分布式项目采用的ID生成算法,开源后广受国内大厂的好评,在该算法影响下各大公司相继开发出各具特色的分布式生成器. 第一个bit位(1bit):Ja ...
- 雪花算法-Snowflake Snowflake
雪花算法-Snowflake Snowflake,雪花算法是由Twitter开源的分布式ID生成算法,以划分命名空间的方式将 64-bit位分割成多个部分,每个部分代表不同的含义.而 Java中64b ...
- 雪花算法(snowflake)容器化部署支持动态增加节点
先简单的介绍一下雪花算法,雪花算法生成的Id由:1bit 不用 + 41bit时间戳+10bit工作机器id+12bit序列号,如下图: 不用:1bit,因为最高位是符号位,0表示正,1表示负,所以这 ...
- 分布式自增ID算法---雪花算法 (snowflake,Java版)---算法001
一般情况,实现全局唯一ID,有三种方案,分别是通过中间件方式.UUID.雪花算法. 方案一,通过中间件方式,可以是把数据库或者redis缓存作为媒介,从中间件获取ID.这种呢,优点是可以体现全局的递增 ...
最新文章
- WINDOWS SERVER 2003 组策略应用
- 华为stfal00是什么手机_opporeno5pro和华为p40pro有什么区别 哪款手机更好
- python自动化办公脚本下载-基于python实现自动化办公学习笔记二
- 关于动态添加页面(iframe + mhtml)
- MCMC笔记:齐次马尔可夫链
- mysql8基本操作
- PHP spl_autoload_register()函数的一些见解
- 计算不确定度(C语言-大物实验)-复制即可使用
- RAID Introduction
- 酷派把用户手机当肉鸡,非一天两天
- 干货来啦!「敏捷开发畅想与实战」沙龙回顾
- 蓄水池问题c语言编程,蓄水池算法(Reservoir Sampling)
- uniapp通讯录等敏感权限检查、申请。获取通话记录等内容
- 超详细的APP数据指标体系分析
- php是什么症状脾虚什么症状怎么治,脾虚的症状及治疗方法是什么
- 我的大学(学习-上)
- 用android写的微信闲聊机器人
- directives(Directives UE 93 42 CEE)
- 毕业设计有哪些可借鉴的 GitHub 项目?
- android筛选功能代码,Android中 TeaScreenPopupWindow多类型筛选弹框功能的实例代码