唯一ID可以标识数据的雪花唯一性,在分布式系统中生成唯一ID的分布方案有很多,常见的式ID生算法方式大概有以下三种:
一、分布数据库和UUID方案的式ID生算法不足之处
采用数据库自增序列:
UUID随机数:
二、关于雪花算法
有这么一种说法,自然界中并不存在两片完全一样的雪花的。每一片雪花都拥有自己漂亮独特的形状、独一无二。雪花算法也表示生成的ID如雪花般独一无二。
1. 雪花算法概述
雪花算法生成的ID是纯数字且具有时间顺序的。其原始版本是scala版,后面出现了许多其他语言的版本如Java、C++等。
2. 组成结构
大致由:首位无效符、时间戳差值,机器(进程)编码,序列号四部分组成。
3. 特点(自增、有序、适合分布式场景)
snowflake算法可以根据项目情况以及自身需要进行一定的修改。
三、雪花算法的缺点
雪花算法在单机系统上ID是递增的,但是在分布式系统多节点的情况下,所有节点的时钟并不能保证不完全同步,所以有可能会出现不是全局递增的情况。
四、总结
分布式唯一ID的方案有很多,本文主要讨论了雪花算法,组成结构大致分为了无效位、时间位、机器位和序列号位。其特点是自增、有序、纯数字组成查询效率高且不依赖于数据库。适合在分布式的场景中应用,可根据需求调整具体实现细节。
责任编辑:赵宁宁 来源: 今日头条 雪花算法分布式ID
(责任编辑:知识)
三季度基金代销机构公募基金保有规模前100强名单 银行C位不变
OPPO Watch 3 Pro获得PChome2022卓越创新手表奖项
三星Galaxy Tab S9 FE系列确认采用Exynos1380处理器
中国中冶(601618)融资余额12.39亿元 融券余额1509.92万元(03